麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數(shù)據(jù)庫 > MongoDB > 正文

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

2020-10-29 18:49:35
字體:
供稿:網(wǎng)友

MongoDB

MongoDB 是一個開源的文檔數(shù)據(jù)庫,并領(lǐng)先的 NoSQL 數(shù)據(jù)庫。 MongoDB 是由 c++語言編寫。

文檔

文檔是一組鍵 - 值對。文件動態(tài)模式。動態(tài)模式是指,在相同集合中的文檔不需要具有相同的字段或結(jié)構(gòu)組的公共字段的集合的文檔,可以容納不同類型的數(shù)據(jù)。

db.集合名稱.update({query},{update},upsert, multi})
query:過濾條件
update:修改內(nèi)容
upsert:如果不存在查詢條件查出的記錄,是否插入一條數(shù)據(jù),默認是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 } 

把整條數(shù)據(jù)都修改了,如果修改內(nèi)容中沒有設(shè)置age字段,則以前的age也取消了,數(shù)據(jù)全部修改

局部修改

$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 } 

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

> 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 } 

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

> 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:在原來的基礎(chǔ)上加多少

> 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" } 

針對數(shù)組類型的操作

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

> 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:刪除數(shù)組的第一個或最后一個元素,值為-1時是刪除第一個元素,值為1時是刪除最后一個元素。

$pull:刪除數(shù)組中的某一個指定的數(shù)值

$pullAll:刪除數(shù)組中多個指定的數(shù)值

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: chengrenzaixian | 国产日本在线 | 激情在线观看视频 | 黑人日比 | 精品xxxx户外露出视频 | 在线看免电影网站 | chinesexxxx刘婷hd 国产资源视频在线观看 | 欧美性色黄大片www 操碰网 | 欧美日韩国产成人在线 | 国产一区二区免费看 | 亚洲第一视频 | 国产精品一区视频 | 久久丝袜脚交足黄网站免费 | 牛牛热这里只有精品 | 日韩黄在线 | 中文字幕在线播放第一页 | 久久电影一区二区 | 成人性视频免费网站下载软件 | 久久艹综合| 成人mm视频在线观看 | 日韩精品久久久 | 成年人在线视频 | 成人区精品一区二区婷婷 | 日日草夜夜 | 一级做a爱性色毛片免费1 | 91成人在线网站 | 男人午夜小视频 | 成人午夜视频免费看 | 亚洲成人福利在线观看 | 国产一级毛片视频在线! | av免费在线观看av | 一级黄色影院 | 国产一级片91 | 国产精品久久久久久久久久东京 | 毛片免费视频 | 一级做受大片免费视频 | 日韩色视频 | 国产精品一区二区视频 | 91久久夜色精品国产网站 | 久久久久9999 | 亚洲成人激情av |