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

首頁 > 數據庫 > MongoDB > 正文

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

2020-10-29 18:49:35
字體:
來源:轉載
供稿:網友

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" : [ ] }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产91热爆ts人妖在线| 亚洲精品乱码久久久久久按摩观| 亚洲级视频在线观看免费1级| 国产精品网站大全| 在线视频日本亚洲性| 欧美激情一级二级| 中文字幕精品久久久久| 国内外成人免费激情在线视频网站| 九色精品美女在线| 成人网址在线观看| 成人a级免费视频| 国产精品久久久久久久久影视| 欧美激情xxxx| 国产狼人综合免费视频| 国产在线视频2019最新视频| 91九色国产社区在线观看| 国产精品成人久久久久| 国产九九精品视频| 国产精品久久久| 国产欧美日韩免费看aⅴ视频| 亚洲成人中文字幕| 国产精品久久久久久久久久新婚| 亚洲人成在线观| 久久久www成人免费精品张筱雨| 亚洲毛片在线观看| 青青久久aⅴ北条麻妃| 欧美激情中文字幕乱码免费| 欧美大片在线看免费观看| 国内久久久精品| 日韩三级成人av网| 国产日韩av高清| 国产成人久久精品| 欧美成人午夜激情在线| 欧美激情精品久久久久久大尺度| 中文字幕日韩免费视频| 97久久久免费福利网址| 国产成人鲁鲁免费视频a| 欧美精品在线播放| 91最新在线免费观看| 国产成人精品久久二区二区91| 日韩欧美主播在线| 精品视频9999| 国产成人精品电影| 国产精品福利无圣光在线一区| 日本成人激情视频| 国产va免费精品高清在线| 91日本视频在线| 日本精品在线视频| 国产情人节一区| 日韩成人在线视频观看| 欧美黄色片视频| 欧美一区二区三区图| 日韩在线免费视频| 98精品国产高清在线xxxx天堂| 久久久久久亚洲精品不卡| 日韩精品视频免费| 成人xxxx视频| 国产精品免费在线免费| 亚洲精品久久久久久久久| 欧美孕妇毛茸茸xxxx| 日本中文字幕成人| www.日韩不卡电影av| 久久国产精品电影| 成人黄色短视频在线观看| 中文字幕日韩精品在线| 国产精品久久久久久亚洲调教| 亚洲精品之草原avav久久| 国产成人综合av| 久久久久www| 亚洲一区二区久久久久久久| 欧美第一黄网免费网站| 欧美大片在线影院| 欧美激情视频在线免费观看 欧美视频免费一| 久久天天躁狠狠躁夜夜av| 久久亚洲成人精品| 亚洲福利视频在线| 成人国产精品日本在线| 色偷偷888欧美精品久久久| 日韩欧中文字幕| 欧美日韩国产成人在线| 色偷偷888欧美精品久久久| 欧美视频在线视频| 日韩精品视频在线观看免费| 精品国产乱码久久久久久天美| 欧美乱大交xxxxx另类电影| 欧美日韩亚洲成人| 欧美日韩在线一区| 久久精品中文字幕电影| 欧美大胆在线视频| 777国产偷窥盗摄精品视频| 啊v视频在线一区二区三区| 国产高清视频一区三区| 亚洲一级黄色片| 日韩欧美在线中文字幕| 4k岛国日韩精品**专区| 亚洲精品中文字幕女同| 97视频网站入口| 亚洲片国产一区一级在线观看| 岛国av一区二区| 91欧美激情另类亚洲| 2019中文字幕在线免费观看| 国产精品欧美日韩久久| 国产不卡av在线免费观看| 久久的精品视频| 成人福利在线视频| 欧美国产日韩一区二区三区| www.国产精品一二区| 国产成人亚洲精品| 色狠狠av一区二区三区香蕉蜜桃| 国产亚洲人成网站在线观看| 美女久久久久久久久久久| 久久久久久久久久国产精品| 国产精品久久77777| 亚洲国产高潮在线观看| 美日韩在线视频| 久久久久久九九九| 色一区av在线| 久久精品国产亚洲7777| 久久久国产精品x99av| 国产精品白丝jk喷水视频一区| 国产在线视频欧美| 一区二区欧美亚洲| 日本不卡视频在线播放| 亚洲精品av在线播放| 成人高清视频观看www| 欧洲亚洲女同hd| 欧美中文字幕视频| 亚洲人成网站777色婷婷| 国产亚洲精品久久久久久| 欧美激情喷水视频| 久久久久久久久久婷婷| 国产午夜精品理论片a级探花| 成人午夜黄色影院| 国产精品aaaa| 欧美在线一级va免费观看| 91精品视频免费| 国产精品爱啪在线线免费观看| 精品亚洲一区二区三区| 欧美放荡办公室videos4k| 疯狂做受xxxx欧美肥白少妇| 亚洲美女中文字幕| 精品美女久久久久久免费| 久久久久久午夜| 亚洲国产小视频在线观看| 亚洲综合视频1区| 亚洲午夜激情免费视频| 亚洲激情小视频| 中文字幕亚洲一区二区三区| 全亚洲最色的网站在线观看| 麻豆国产精品va在线观看不卡| 亚洲第一二三四五区| 国产美女91呻吟求| 日韩国产高清污视频在线观看| 欧美成人午夜视频| 97国产成人精品视频| 18性欧美xxxⅹ性满足| 理论片在线不卡免费观看| 国产亚洲精品一区二555| 精品电影在线观看| 久久69精品久久久久久久电影好| 亚洲性av网站| 国产精品丝袜一区二区三区| 欧美精品国产精品日韩精品| 亚洲老板91色精品久久|