婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MongoDB的創(chuàng)建、更新和刪除

MongoDB的創(chuàng)建、更新和刪除

熱門標(biāo)簽:呼和浩特電銷外呼系統(tǒng)加盟 云南外呼系統(tǒng) 濟(jì)南電銷機(jī)器人加盟公司 電銷機(jī)器人是什么軟件 廣州長安公司怎樣申請400電話 杭州人工電銷機(jī)器人價(jià)格 老虎洗衣店地圖標(biāo)注 蘋果汽車租賃店地圖標(biāo)注 怎么投訴地圖標(biāo)注

概要

  下面開始學(xué)習(xí)MongoDB最重要也是最基礎(chǔ)的部分:C(創(chuàng)建)R(查詢)U(更新)D(刪除);由于R(查詢)操作相對來說內(nèi)容比較多,也比較繁瑣,

  同時使用頻率也比較高,所以下一篇會拿出來單獨(dú)介紹。廢話不多說,連上服務(wù)器,我們直接進(jìn)入正題!

一、創(chuàng)建

  按照我們關(guān)系型數(shù)據(jù)庫的思想,一個服務(wù)器要想存放數(shù)據(jù),首先要有數(shù)據(jù)庫,表,字段,約束,當(dāng)然了也少不了主鍵,外鍵,索引,關(guān)系等;

  但是在MongoDB的世界里邊,我們不用預(yù)先的去創(chuàng)建這些信息從而直接來使用各個屬性。

  1、數(shù)據(jù)庫(database)

    a)、創(chuàng)建

      use mydb(創(chuàng)建并切換到名稱為mydb的數(shù)據(jù)庫實(shí)例下。注:如果你對其不進(jìn)行任何操作,該數(shù)據(jù)庫是沒有任何實(shí)際意義的)

  2、集合(collection)

    a)、創(chuàng)建

      我們直接指定,不做任何預(yù)處理,指定一個名稱為users的數(shù)據(jù)集(相當(dāng)于表),并向其中插入一條用戶數(shù)據(jù)。

      db.users.insert({ "name" : "wjg" , "age" : 24 })

      返回結(jié)果如下,表示你已經(jīng)成功插入了一條數(shù)據(jù):

      WriteResult({ "nInserted" : 1 })

    b)、顯式創(chuàng)建

      僅創(chuàng)建一個名稱為collectionName的,沒有任何大小和數(shù)量限制的數(shù)據(jù)集

      db.createCollection("collectionName")

      如果該數(shù)據(jù)集有重名,會給出已經(jīng)存在的提示:

      { "ok" : 0, "errmsg" : "collection already exists", "code" : 48 }

      成功之后會給出ok的提示:

      { "ok" : 1 }

  3、文檔(document)

    a)、單一插入

      注:如果沒有主鍵“_id”,插入文檔的時候MongoDB會為我們自動保存一個進(jìn)去。

這里我們指定一個“_id”,當(dāng)然了,“_id”肯定是不能重復(fù)的,否則無法插入成功。

      db.users.insert({"_id":0,"name":"jack","age":20})

      成功插入數(shù)據(jù)之后:

      WriteResult({ "nInserted" : 1 })

    b)、批量插入

      注:一次性插入多個文檔會明顯提高插入速度;

插入文檔的大小限制為48MB;

如果其中有一個文檔插入失敗了,這個文檔之前的都可以插入成功,但是在它之后都會失敗;(不同的驅(qū)動可能會有不同的處理方式)

      db.users.insert([{"_id":1,"name":"tom","age":21},{"_id":2,"name":"joe","age":22},{"_id":3,"name":"bob","age":22}])

      批量插入成功之后會返回如下信息:

      BulkWriteResult({

"writeErrors":[],

"writeConcernErrors":[],

"nInserted":3,

"nUpserted":0,

"nMatched":0,

"nModified":0,

"nRemoved":0,

"upserted":[]})

      分別表示的大致意思為:

插入的錯誤信息,其他的插入錯誤信息,插入的文檔數(shù)量,特殊更新的文檔數(shù)量,匹配到的文檔數(shù)量,

更新的文檔數(shù)量,移出的文檔數(shù)量和特殊文檔更新信息

      特殊的文檔更新(upsert),其定義如下:

如果沒有找到符合更新條件的文檔,就會以這個條件和更新文檔為基礎(chǔ)創(chuàng)建一個新的文檔;如果找到了匹配的文檔,那么就正常更新

二、更新

  想要更新文檔,必須要有兩個參數(shù):

    一個是查詢條件,用于定位到需要更新的目標(biāo)文檔;另一個是修改器,用于說明要對找到的文檔進(jìn)行哪些修改

  截至此刻為止,我們已經(jīng)向mydb數(shù)據(jù)庫中名稱為users的數(shù)據(jù)集中添加了如下幾個文檔:

    a)、單一更新

      讓我們來為名字為bob的年齡增加一歲,直接將年齡更新為23歲

      db.users.update({"name":"bob"},{$set:{"age":23}}) //使用了$set修改器之后,只會更新age自段的值為23

      或者

      db.users.update({"name":"bob"},{"age":23}) //同樣會將age自段的值更新為23,但是會移出除了“_id”和本身之外的所有字段值

      具體詳情如下圖:

      注:如果需要更新的字段不存在,那么MongoDB會按字段順序進(jìn)行插入,類似于上邊提到的特殊更新。

其實(shí)細(xì)心的童鞋會發(fā)現(xiàn),我們都是以name作為條件進(jìn)行更新,所以并不能保證其唯一性,那么MongoDB只會更新匹配到的第一個文檔。

這里還是建議大家指定一個唯一的文檔進(jìn)行更新,"_id"可以幫你保證!

    b)、使用選擇器更新(重點(diǎn))

      1、$set修改器

執(zhí)行特殊更新操作;可以修改內(nèi)嵌文檔;甚至可以更改鍵的類型;

Ⅰ、假設(shè)需求改了,我們需要為為所有用戶添加一個”hobby“的屬性用于存放用戶的喜好,那么我們可以這樣做:

  db.users.update({},{$set:{"hobby":"read"}}) //這樣做是錯的,哈哈。。

  更新后的文檔如下:

切記:update方法只會更新它匹配到的第一個文檔對象,所以這個操作只會將名字為”wjg“的用戶添加一個”hobby“屬性,其它對象不會添加

正確方式如下:

db.users.update({},{$set:{"hobby":"write"}},false,true) //第三個參數(shù)為是否啟用特殊更新,第四個為是否更新所有匹配的文檔;

這倆參數(shù)默認(rèn)都為false

更新后的文檔如下:

  可以看到我們成功更新了五個文檔對象

Ⅱ、假設(shè)我們需求又變了,老板說了,每個用戶的愛好會有多個。那么簡單,因?yàn)槲覀兛梢灾苯訉tring類型的hobby屬性改成string數(shù)組類型的

  db.users.update({"_id":0},{"$set":{"hobby":["write","read","paly ping-pong"]}}) //將_id為0的hobby屬性更新為數(shù)組類型的

Ⅲ、然后我們發(fā)現(xiàn)tom壓根就沒有愛好,那么我們可以使用$unset修改器將其刪除

  db.users.update({"_id":1},{"$unset":{"hobby":1}}) //1表示徹底刪除這個鍵值對

Ⅳ、現(xiàn)在已經(jīng)過去一年了,我們是時候把所有用戶的年齡加一歲了。這時$inc上場

  db.users.update({},{"$inc":{"age":1}},false,true) //別忘了將第四個參數(shù)置為true

  注:$inc修改器只針對數(shù)字類型,如果是string或者其他類型的會提示報(bào)錯: 

      提示無法將$inc應(yīng)用到非數(shù)字類型上,并且給出錯誤位置:”_id“為2的文檔;

      我們將joe的age改為數(shù)字類型的重新執(zhí)行一次,就可以成功啦!

Ⅴ、過了一段時間,jack又喜歡上了游泳,那么我們可以用$push這樣搞:

  db.users.update({"_id":0},{"$push":{"hobby":"swim"}}) //hobby必須是一個數(shù)組,所以你在其他文檔上使用是不會成功的

Ⅵ、然而jack不喜歡讀書了,我們就用$pull來移除“read”元素

  db.users.update({"_id":0},{"$pull":{"hobby":"read"}}) //它會移除數(shù)組中所有匹配到的“read”元素

  另外:db.users.update({"_id":0},{"$pop":{"hobby":1}}) //表示移除hobby中的最后一個元素,為-1表示移除第一個元素

  不知道大家有沒有發(fā)現(xiàn),“_id”為0的文檔從第二的位置被移動到了數(shù)據(jù)集的末尾,這是因?yàn)樵撐臋n尺寸變大的原因?qū)е碌模?/p>

  原先的位置已經(jīng)容不下它了!

  那么這就引出了另外一個概念:填充因子,它是MongoDB為每個新文檔預(yù)留的增長空間。上邊的這種情況就會使填充因子增加。

  移動文檔是一個非常緩慢的操作,盡量讓填充因子的值接近1;

  通過db.users.stats()查看該數(shù)據(jù)集信息,“paddingFactor”即為填充因子的大小;

三、刪除

  刪除文檔相對來說就簡單了許多

  1、單一刪除

    給定一個查詢參數(shù),只要符合條件的,都會被刪除

    db.users.remove({"_id":{"$lte":1}}) //刪除“_id”的值小于等于1的所有文檔

    返回結(jié)果如下:

    WriteResult({"nRemoved":2}) //成功刪除了兩個文檔

  2、清空整個數(shù)據(jù)集

    db.users.remove()

    如果數(shù)據(jù)較多的話,用db.users.drop()會明顯提升刪除速度

  注:刪除都是不可逆的,不能撤銷,也不能恢復(fù),所以要謹(jǐn)慎使用;

    清空數(shù)據(jù)集的時候集合本身并不會被刪除,也不會刪除集合的元信息;

四、未解決問題

  1、先取出來再更新,使用查詢條件取出來的數(shù)據(jù)都無法用游標(biāo)去獲取值,但是用findOne獲取的一個文檔對象就可以。。。

    如果哪位大神知道的話麻煩告訴小弟一下,多謝、、、哈哈。。

  最后一個問題已經(jīng)找到,原因如下:

    第一個find操作雖然獲取的只是一個文檔對象,看似和下邊用findOne是一樣的效果,但是在MongoDB的shell中第一個的結(jié)果集是被默認(rèn)為多個文檔集合,所以它無法判斷你想獲取的是哪個文檔的age。

您可能感興趣的文章:
  • MongoDB數(shù)據(jù)庫插入、更新和刪除操作詳解
  • MongoDB插入、更新、刪除文檔實(shí)現(xiàn)代碼
  • MongoDB數(shù)據(jù)更新方法干貨篇

標(biāo)簽:興安盟 玉林 廈門 泰安 無錫 雞西 遼陽 自貢

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MongoDB的創(chuàng)建、更新和刪除》,本文關(guān)鍵詞  MongoDB,的,創(chuàng)建,更,新和,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MongoDB的創(chuàng)建、更新和刪除》相關(guān)的同類信息!
  • 本頁收集關(guān)于MongoDB的創(chuàng)建、更新和刪除的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美丝袜第三区| 欧美日韩国产小视频在线观看| 亚洲一区在线观看免费| 老色鬼精品视频在线观看播放| 色哦色哦哦色天天综合| 国产日韩一级二级三级| 蜜桃视频在线观看一区| 欧美二区三区91| 国产午夜亚洲精品午夜鲁丝片| 青青草成人在线观看| 欧美日韩美少妇| 亚洲一级二级在线| 欧美中文字幕久久| 日韩国产一二三区| 日韩免费看网站| 六月丁香婷婷色狠狠久久| 欧美大白屁股肥臀xxxxxx| 久久97超碰国产精品超碰| 欧美一级专区免费大片| 麻豆极品一区二区三区| 国产视频一区二区在线观看| 成人国产精品免费网站| 亚洲精品ww久久久久久p站| 91免费观看视频在线| 视频一区视频二区中文字幕| 欧美精选在线播放| 成a人片亚洲日本久久| 亚洲 欧美综合在线网络| 久久综合网色—综合色88| 色综合亚洲欧洲| 激情国产一区二区 | 亚洲成人综合视频| 久久色在线观看| 7777精品伊人久久久大香线蕉| 精品一区二区在线免费观看| 专区另类欧美日韩| 精品成人在线观看| 欧美人妖巨大在线| 欧美老肥妇做.爰bbww| 久久国产生活片100| 毛片一区二区三区| 免费成人在线播放| 无吗不卡中文字幕| 午夜日韩在线观看| 三级久久三级久久| 亚洲国产精品自拍| 亚洲精品成人a在线观看| 亚洲男人的天堂在线aⅴ视频| 欧美成人女星排名| 久久综合资源网| 国产精品国产三级国产专播品爱网| 久久一留热品黄| 中文字幕第一区| 亚洲地区一二三色| 麻豆一区二区99久久久久| 风间由美一区二区av101| 99久久精品国产网站| 欧美日韩国产一二三| 欧美精品九九99久久| 欧美激情中文字幕一区二区| 亚洲国产精品黑人久久久 | caoporm超碰国产精品| 欧美日韩一区二区三区四区五区| 欧美午夜不卡在线观看免费| 日韩西西人体444www| 国产精品国产三级国产普通话99 | 久久久久国产精品厨房| 日韩精品一区二区三区视频播放| 久久久久久**毛片大全| 亚洲成人免费视| 色婷婷综合久久久| 久久精品人人做人人综合 | 国产精品视频看| 蜜臀av性久久久久蜜臀av麻豆| 99久久久久免费精品国产| 欧美成人精品福利| 免费在线一区观看| 欧美日韩一区二区三区免费看| 中文字幕在线不卡| 国产黄色成人av| 国产精品拍天天在线| 国产福利视频一区二区三区| 久久久噜噜噜久久中文字幕色伊伊| 亚洲成人午夜影院| 欧美美女视频在线观看| 午夜久久电影网| 欧美无砖专区一中文字| 亚洲福利一区二区三区| 欧美日韩精品欧美日韩精品| 亚洲成年人影院| 欧美一区二区三区性视频| 国产伦精品一区二区三区免费迷| 精品国产凹凸成av人导航| 欧美羞羞免费网站| 午夜免费久久看| 国产拍欧美日韩视频二区| 成人一区二区三区视频在线观看 | 亚洲国产色一区| 正在播放一区二区| jizz一区二区| 精品一区二区在线播放| 亚洲国产精品成人久久综合一区| 日本久久一区二区| 九九**精品视频免费播放| 日本一区二区在线不卡| 欧美在线制服丝袜| 国产91露脸合集magnet| 青娱乐精品视频| 亚洲国产欧美另类丝袜| 亚洲国产岛国毛片在线| 欧美一级在线视频| 欧美日韩国产区一| 欧美日韩一区二区三区不卡| 99精品视频免费在线观看| 国产精品一线二线三线| 蜜桃精品在线观看| 水野朝阳av一区二区三区| 亚洲午夜精品一区二区三区他趣| 久久亚洲影视婷婷| 国产亚洲欧美激情| 国产精品人人做人人爽人人添| 久久女同性恋中文字幕| 久久日韩精品一区二区五区| 一区二区不卡在线播放| 国产精品久久久久久久岛一牛影视| 亚洲精品一区二区三区蜜桃下载 | 麻豆精品久久精品色综合| 全部av―极品视觉盛宴亚洲| 亚洲国产综合在线| 另类调教123区| 国产成人av资源| 在线精品视频一区二区| 91麻豆精品国产无毒不卡在线观看 | 精品日韩成人av| 国产日韩欧美一区二区三区乱码 | 91久久人澡人人添人人爽欧美| 91国产精品成人| 欧美成人a∨高清免费观看| 日本一二三不卡| 五月激情丁香一区二区三区| 国产.精品.日韩.另类.中文.在线.播放| 国产自产视频一区二区三区| 在线视频一区二区三区| 99久精品国产| 欧美日韩亚州综合| 亚洲欧洲三级电影| 国产精品一区二区在线播放 | 亚洲福利电影网| 91影院在线免费观看| 精品国产sm最大网站免费看| 亚洲综合成人在线| 欧美私人免费视频| 亚洲视频 欧洲视频| 99久久久久久99| 日韩一区中文字幕| 欧洲av在线精品| 日韩高清不卡一区二区| 欧美一区二区三区不卡| 看国产成人h片视频| 久久伊99综合婷婷久久伊| 久久激情综合网| 久久精品视频一区二区三区| 国产精品乡下勾搭老头1| 国产欧美一区二区在线观看| 福利电影一区二区三区| 国产精品毛片高清在线完整版| 99久久久国产精品免费蜜臀| 亚洲欧洲精品一区二区三区不卡| 成人高清av在线| 亚洲国产aⅴ天堂久久| 6080日韩午夜伦伦午夜伦| 国产一区二区久久| 亚洲激情六月丁香| 久久久亚洲高清| 色一情一乱一乱一91av| 亚洲综合区在线| 国产欧美一区二区精品性色| 色伊人久久综合中文字幕| 亚洲电影视频在线| 亚洲国产精品传媒在线观看| 欧美三级三级三级| 丁香婷婷深情五月亚洲| 亚洲精品久久久久久国产精华液| 51午夜精品国产| 色综合一个色综合亚洲| 视频一区二区三区中文字幕| 日韩一区中文字幕| 久久精品在线观看| 久久久久久久精| 91精品国产福利| 日韩精品中文字幕在线一区| 色综合久久久久| 国产69精品久久久久777| 日韩中文字幕91| 亚洲国产精品久久不卡毛片| 亚洲女人的天堂| 亚洲午夜在线观看视频在线| 亚洲欧美在线另类| 五月婷婷综合网| 日产精品久久久久久久性色|