MongoDB update修改器: 针对Fields的$修改器 $inc $set $unset
?
?
MongoDB update修改器: $inc $set $unset $push $pull $pop
?
針對Fields的$修改器
$set:
?
{ $set: { key: value } } ?
?
?
$set:{"gender":"男"} 解釋: $set 是update時的關鍵字,表示我要設置gender屬性的值為"男"
如果該條Documents沒有gender屬性,他就會自動創建一個gender屬性并且賦值為"男"
$set是修改器之一 :設置將某key設置為某值
?
例子:
1.把 "age" 為 13 的數據? "gender" 賦值為 "男",沒有這個字段會自動創建一個gender字段,并且賦值為"男"
?
> db.user.updateOne({age:13},{$set:{"gender":"男"}}) { "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 } > > > db.user.find({age:13}) { "_id" : ObjectId("5ca7a4c4219efd687462f968"), "id" : 4, "name" : "xiaogang", "age" : 13, "hobby" : [ "羽毛球", "籃球", "足球" ], "gender" : "男" }
?
?
?
2.把"age"為13的數據 “gender”賦值為"女"
> db.user.updateOne({age:13},{$set:{"gender":"女"}}) { "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 } > > db.user.find({age:13}) { "_id" : ObjectId("5ca7a4c4219efd687462f968"), "id" : 4, "name" : "xiaogang", "age" : 13, "hobby" : [ "羽毛球", "籃球", "足球" ], "gender" : "女" }
?
?
$unset:
?
{ $unset: { key: 1} } ?
?
?
用來刪除當前Key(field)的
例子:
刪除age=13的數據的gender這個fields
?
> db.user.updateOne({age:13},{$unset:{"gender":1}} ) { "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 } > > db.user.find({age:13}) { "_id" : ObjectId("5ca7a4c4219efd687462f968"), "id" : 4, "name" : "xiaogang", "age" : 13, "hobby" : [ "羽毛球", "籃球", "足球" ] }
?
成功了! {$unset:{"gender" : 1}} 就是刪除 "gender" 這個 fields 相當于 關系型數據庫中刪除了 字段
?
$inc:
?
{ $inc: { key: value } } ?
?
類似于Python中的? 變量 += 1 , 將查詢到的結果 加上某一個值 然后保存
在原有值的基礎上增加多少,
對文檔的某個值為數字型(只能為滿足要求的數字)的鍵進行增減的操作。
?
{$inc:{age:1} } 在年齡原有基礎加一歲
> db.user.find() { "_id" : ObjectId("5ca7a4b0219efd687462f965"), "id" : 1, "name" : "jack", "age" : 73 } { "_id" : ObjectId("5ca7a4b7219efd687462f966"), "id" : 2, "name" : "mike", "age" : 84, "gender" : "男" } { "_id" : ObjectId("5ca7a4c4219efd687462f967"), "id" : 3, "name" : "peter", "age" : 21 } { "_id" : ObjectId("5ca7a4c4219efd687462f968"), "id" : 4, "name" : "xiaogang", "age" : 13, "hobby" : [ "羽毛球", "籃球", "足球" ] } { "_id" : ObjectId("5ca7a4c4219efd687462f969"), "id" : 5, "name" : "ben", "age" : 24 } { "_id" : ObjectId("5ca7a505219efd687462f96a"), "id" : 6, "name" : "Mary", "age" : 84, "gender" : "男" }
把age=13的數據age增加一歲
> db.user.updateOne({age:13},{$inc:{age:1}} ) { "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 } > db.user.find({age:13}) > db.user.find({age:14}) { "_id" : ObjectId("5ca7a4c4219efd687462f968"), "id" : 4, "name" : "xiaogang", "age" : 14, "hobby" : [ "羽毛球", "籃球", "足球" ] }
?
成功了 , {$inc:{"age":1}}的意思是,"age"的原有數值上面 +1,
那我們再來實驗一次,把14改為34,這怎么操作呢,其實可以理解為在 14 上加一個 20
> db.user.updateOne({age:14},{$inc:{age:20}} ) { "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 } > db.user.find({age:34}) { "_id" : ObjectId("5ca7a4c4219efd687462f968"), "id" : 4, "name" : "xiaogang", "age" : 34, "hobby" : [ "羽毛球", "籃球", "足球" ] }
?
轉載于:https://www.cnblogs.com/mingerlcm/p/10670687.html
總結
以上是生活随笔為你收集整理的MongoDB update修改器: 针对Fields的$修改器 $inc $set $unset的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 扒一扒楼主这算不算被父母的善良和孝心给伤
- 下一篇: vsftp部署