亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MongoDB > 正文

MongoDB快速入門筆記(六)之MongoDB的文檔修改操作

2020-03-14 13:10:46
字體:
來源:轉載
供稿:網友

MongoDB

MongoDB 是一個開源的文檔數據庫,并領先的 NoSQL 數據庫。 MongoDB 是由 c++語言編寫。

文檔

文檔是一組鍵 - 值對。文件動態模式。動態模式是指,在相同集合中的文檔不需要具有相同的字段或結構組的公共字段的集合的文檔,可以容納不同類型的數據。

db.集合名稱.update({query},{update},upsert, multi})
query:過濾條件
update:修改內容
upsert:如果不存在查詢條件查出的記錄,是否插入一條數據,默認是false
multi:是否只修改查詢條件查出的第一條記錄,默認是false

> db.student.update({_id:1}, {name:"zhang"})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.student.find(){ "_id" : 1, "name" : "zhang" }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 } 

把整條數據都修改了,如果修改內容中沒有設置age字段,則以前的age也取消了,數據全部修改

局部修改

$set:如果存在鍵則修改,如果不存在鍵則添加

> db.student.update({_id: 1},{$set:{name:"zhangsan", age: 26}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.student.find(){ "_id" : 1, "name" : "zhangsan", "age" : 26 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 } 

id重復時無法修改

> db.student.update({_id:1},{_id:0, name:"zhangsanzhangsan"})WriteResult({"nMatched" : 0,"nUpserted" : 0,"nModified" : 0,"writeError" : {"code" : 16837,"errmsg" : "The _id field cannot be changed from {_id: 1.0} to {_id: 0.0}."}})> db.student.find(){ "_id" : 1, "name" : "zhangsan", "age" : 26 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 } 

第三個參數默認為false,如果查不到數據false時不執行任何操作,true時往數據庫里新插入一條數據

> db.student.update({_id:7},{_id:7, name: "songjiu", age:32})WriteResult({ "nMatched" : 0, "nUpserted" : 0, "nModified" : 0 })> db.student.update({_id:7},{_id:7, name: "songjiu"}, true)WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : 7 })> db.student.find(){ "_id" : 1, "name" : "zhangsan", "age" : 26 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 7, "name" : "songjiu", "age" : 32 } 

第四個參數默認為false,false時表示只修改查詢到的第一條數據,true時表示修改查詢到的所有數據

> db.student.update({age:32}, {$set:{age:33}}, false, false)WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.student.find(){ "_id" : 1, "name" : "zhangsan", "age" : 26 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 33 }{ "_id" : 7, "name" : "songjiu", "age" : 32 }> db.student.update({age:33}, {$set:{age:32}}, false, true)WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })> db.student.find(){ "_id" : 1, "name" : "zhangsan", "age" : 26 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 32 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 7, "name" : "songjiu", "age" : 32 }> db.student.update({age:32}, {$set:{age:33}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.student.find(){ "_id" : 1, "name" : "zhangsan", "age" : 26 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 7, "name" : "songjiu", "age" : 32 } 

$inc:在原來的基礎上加多少

> db.student.update({_id:7}, {$inc:{age:-1}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.student.find(){ "_id" : 1, "name" : "zhangsan", "age" : 26 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 7, "name" : "songjiu", "age" : 31 } 

$unset:去掉某個鍵

> db.student.update({_id:7},{$unset:{age:1}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.student.find(){ "_id" : 1, "name" : "zhangsan", "age" : 26 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 7, "name" : "songjiu" } 

針對數組類型的操作

$push:當數據中不存在鍵時,創建數組類型的鍵并插入該值;如果存在該鍵,并且該鍵是數組類型時,則在此數組類型的數據上追加;如果存在該鍵,并且該鍵不是數組類型時,會報錯。
$pushAll:批量往數組中追加
$addToSet:數組中有該值時不追加,沒有該值時追加

> db.student.update({_id: 7},{$push:{skill:"java"}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.student.find(){ "_id" : 1, "name" : "zhangsan", "age" : 26 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 7, "name" : "songjiu", "skill" : [ "java" ] }> db.student.update({_id: 7},{$push:{skill:"mongodb"}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.student.find(){ "_id" : 1, "name" : "zhangsan", "age" : 26 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 7, "name" : "songjiu", "skill" : [ "java", "mongodb" ] }> db.student.update({_id: 7},{$push:{name:"111"}})WriteResult({"nMatched" : 0,"nUpserted" : 0,"nModified" : 0,"writeError" : {"code" : 16837,"errmsg" : "The field 'name' must be an array but is of type String in document {_id: 7.0}"}})> db.student.update({_id: 7},{$pushAll:{skill:["js","C++","java"]}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.student.find(){ "_id" : 1, "name" : "zhangsan", "age" : 26 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 7, "name" : "songjiu", "skill" : [ "java", "mongodb", "js", "C++", "java" ] }> db.student.update({_id:7},{$addToSet:{skill:"mongodb"}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })> db.student.find(){ "_id" : 1, "name" : "zhangsan", "age" : 26 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 7, "name" : "songjiu", "skill" : [ "java", "mongodb", "js", "C++", "java" ] } 

$pop:刪除數組的第一個或最后一個元素,值為-1時是刪除第一個元素,值為1時是刪除最后一個元素。

$pull:刪除數組中的某一個指定的數值

$pullAll:刪除數組中多個指定的數值

> db.student.update({_id:7},{$pop:{skill:1}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.student.find(){ "_id" : 1, "name" : "zhangsan", "age" : 26 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 7, "name" : "songjiu", "skill" : [ "java", "mongodb", "js", "C++" ] }> db.student.update({_id:7},{$pop:{skill:-1}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.student.find(){ "_id" : 1, "name" : "zhangsan", "age" : 26 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 7, "name" : "songjiu", "skill" : [ "mongodb", "js", "C++" ] }> db.student.update({_id:7},{$pull:{skill:"js"}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.student.find(){ "_id" : 1, "name" : "zhangsan", "age" : 26 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 7, "name" : "songjiu", "skill" : [ "mongodb", "C++" ] }> db.student.update({_id:7},{$pullAll:{skill:["js"]}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })> db.student.find(){ "_id" : 1, "name" : "zhangsan", "age" : 26 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 7, "name" : "songjiu", "skill" : [ "mongodb", "C++" ] }> db.student.update({_id:7},{$pullAll:{skill:["mongodb","C++"]}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.student.find(){ "_id" : 1, "name" : "zhangsan", "age" : 26 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 7, "name" : "songjiu", "skill" : [ ] }


注:相關教程知識閱讀請移步到MongoDB頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕国产亚洲2019| 韩日欧美一区二区| 久久福利视频网| 伊人亚洲福利一区二区三区| 久久免费在线观看| 日韩激情视频在线播放| 91精品视频在线看| 亚洲综合精品伊人久久| 亚洲精品美女久久久| 中文字幕日韩欧美在线视频| 亚洲成色777777在线观看影院| 国产精品久久久久久久久久久久久| 日韩激情视频在线播放| 日韩成人在线观看| 色狠狠av一区二区三区香蕉蜜桃| 国产精品白嫩美女在线观看| 久久久这里只有精品视频| 久久精品亚洲国产| 成人午夜高潮视频| 日韩精品在线视频观看| 亚洲影视中文字幕| 亚洲久久久久久久久久| 亚洲第一国产精品| 亚洲国产精品嫩草影院久久| 亚洲一区二区免费| 日韩二区三区在线| 国产精品久久久久7777婷婷| 亚洲性无码av在线| 久久久久国色av免费观看性色| 久久九九热免费视频| 亚洲成人黄色在线观看| 亚洲人成欧美中文字幕| 久久久久久国产精品| 日本一区二区不卡| 91亚洲精品久久久久久久久久久久| 91高清在线免费观看| 国产精品美女网站| 欧美日韩中国免费专区在线看| 欧美性生交大片免费| 深夜精品寂寞黄网站在线观看| 久久久精品视频成人| 日韩av综合网| 亚洲一区中文字幕在线观看| 久久韩国免费视频| 国产精品99久久久久久久久久久久| 69av在线播放| 欧美亚洲激情在线| 国产精品一区专区欧美日韩| 大荫蒂欧美视频另类xxxx| 久久99精品久久久久久琪琪| 亚洲一区二区三区成人在线视频精品| 亚洲码在线观看| 国产精品一二三在线| 日本高清视频一区| 亚洲图片欧美午夜| 国产精品一区二区av影院萌芽| 色伦专区97中文字幕| 欧美xxxx14xxxxx性爽| 欧美中文字幕在线观看| 91精品视频一区| 欧美与黑人午夜性猛交久久久| 亚洲精品美女在线| 久久精品影视伊人网| 欧洲亚洲在线视频| 欧美激情免费在线| 国产精品中文久久久久久久| 国产日韩欧美中文在线播放| 欧美日韩aaaa| xxxxx成人.com| 国产精品久久久久久久久久小说| 日韩视频在线免费观看| 久久国产精品久久久| 亚洲国产私拍精品国模在线观看| 亚洲男人7777| 中文字幕在线国产精品| 狠狠色狠狠色综合日日小说| 欧美日韩中文在线观看| 成人黄色免费在线观看| 亚洲欧美激情视频| 国产午夜精品视频| 欧美精品激情在线观看| 欧美视频在线观看免费| 国产精品男人爽免费视频1| 国产日韩欧美自拍| 中文字幕日韩欧美在线视频| 欧美国产日韩一区二区在线观看| 久久精品2019中文字幕| 亚洲国产成人精品一区二区| 国产丝袜一区视频在线观看| 国产精品白嫩美女在线观看| 国产精品久久久久高潮| 国产精品夜色7777狼人| 国产91精品久久久久久久| 国语自产精品视频在免费| 国产精品美女主播| 久久国内精品一国内精品| 久久激情视频久久| 久久精品国产亚洲一区二区| 国产在线观看一区二区三区| 久久视频在线免费观看| 亚洲精品456在线播放狼人| 亚洲综合大片69999| 久久偷看各类女兵18女厕嘘嘘| 成人国产亚洲精品a区天堂华泰| 日韩欧美极品在线观看| 精品视频—区二区三区免费| 亚洲人成在线免费观看| 国产福利视频一区| 欧美最猛黑人xxxx黑人猛叫黄| 日韩激情av在线播放| 伊人精品在线观看| 国产视频999| 欧美大片第1页| 成人黄色av网站| 成人在线中文字幕| 久久伊人精品一区二区三区| 精品亚洲永久免费精品| 欧美激情精品久久久久久久变态| 亚洲人成电影网站色xx| 国内久久久精品| 久久伊人91精品综合网站| 1769国产精品| 国产精品久久久久久久9999| 久久久精品国产| 成人黄色在线播放| 欧美电影在线免费观看网站| 亚洲va男人天堂| 久久久噜久噜久久综合| 欧美老女人性生活| 一区二区三区国产视频| 欧美日韩在线观看视频| 一区二区三区日韩在线| 久久99视频精品| 国产精品99久久久久久白浆小说| 中文欧美日本在线资源| 青青草成人在线| 91久久嫩草影院一区二区| 午夜精品久久久久久久久久久久久| 久久99亚洲热视| 欧美一区二区三区……| 日韩中文视频免费在线观看| 欧美成人精品在线视频| 按摩亚洲人久久| 国产中文字幕日韩| 97精品国产97久久久久久| 欧美高清第一页| 久久天天躁狠狠躁夜夜躁2014| 欧美区在线播放| 中文字幕日韩欧美精品在线观看| 亚洲一区二区久久| 91夜夜揉人人捏人人添红杏| 国产欧洲精品视频| 色多多国产成人永久免费网站| 色婷婷av一区二区三区久久| 国产91在线播放| 久久久国产精品亚洲一区| 乱亲女秽乱长久久久| 国产美女久久精品| 日韩二区三区在线| 欧美性猛交xxxx黑人猛交| 久久视频在线视频| 日韩亚洲精品视频| 欧美成人午夜免费视在线看片| 美女福利视频一区|