《MongoDB入门教程》第15篇 文档更新之$inc操作符
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                《MongoDB入门教程》第15篇 文档更新之$inc操作符
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                本文將會介紹如何在 update() 方法中使用 $inc 操作符增加指定字段的值。
$inc 操作符
有時候我們需要增加文檔中某些字段的值, $inc 操作符可以實現這個功能。
$inc 操作符的語法如下:
{ $inc: {<field1>: <amount1>, <field2>: <amount2>, ...} }其中,amount 可以是正數或者負數。正數表示增加字段的值,負數表示減少字段的值。
如果指定的字段不存在,$inc 操作符將會創建并設置該字段的值。
$inc 示例
我們將會使用以下集合進行演示:
db.products.insertMany([{ "_id" : 1, "name" : "xPhone", "price" : 799, "releaseDate": ISODate("2011-05-14"), "spec" : { "ram" : 4, "screen" : 6.5, "cpu" : 2.66 },"color":["white","black"],"storage":[64,128,256]},{ "_id" : 2, "name" : "xTablet", "price" : 899, "releaseDate": ISODate("2011-09-01") , "spec" : { "ram" : 16, "screen" : 9.5, "cpu" : 3.66 },"color":["white","black","purple"],"storage":[128,256,512]},{ "_id" : 3, "name" : "SmartTablet", "price" : 899, "releaseDate": ISODate("2015-01-14"), "spec" : { "ram" : 12, "screen" : 9.7, "cpu" : 3.66 },"color":["blue"],"storage":[16,64,128]},{ "_id" : 4, "name" : "SmartPad", "price" : 699, "releaseDate": ISODate("2020-05-14"),"spec" : { "ram" : 8, "screen" : 9.7, "cpu" : 1.66 },"color":["white","orange","gold","gray"],"storage":[128,256,1024]},{ "_id" : 5, "name" : "SmartPhone", "price" : 599,"releaseDate": ISODate("2022-09-14"), "spec" : { "ram" : 4, "screen" : 5.7, "cpu" : 1.66 },"color":["white","orange","gold","gray"],"storage":[128,256]}])示例一:增加指定字段的值
以下示例使用 $inc 操作符將 products 集合中文檔(_id: 1)的 price 字段的值增加 50:
db.products.updateOne({_id: 1 }, {$inc: {price: 50} })返回結果如下:
{acknowledged: true,insertedId: null,matchedCount: 1,modifiedCount: 1,upsertedCount: 0 }再次查詢該文檔,可以看到價格的變化:
db.products.find({_id: 1},{name: 1, price: 1} )[ { _id: 1, name: 'xPhone', price: 849 } ]示例二:減少指定字段的值
下面的示例使用 $inc 操作符將文檔(_id: 1)中的 price 字段的值減少 150:
db.products.updateOne({_id: 1 }, {$inc: {price: -150} })返回結果如下:
{acknowledged: true,insertedId: null,matchedCount: 1,modifiedCount: 1,upsertedCount: 0 }再次查詢該產品的價格:
db.products.find({ _id: 1 },{ name: 1, price: 1 } )[ { _id: 1, name: 'xPhone', price: 699 } ]示例三:更新多個字段的值
以下示例使用 $inc 操作符更新了嵌入式文檔 spec 中的 price 字段和 ram 字段的值:
db.products.updateOne({_id: 1 }, {$inc: {price: 50,"spec.ram": 4} })輸出結果如下:
{acknowledged: true,insertedId: null,matchedCount: 1,modifiedCount: 1,upsertedCount: 0 }再次查詢該文檔,驗證更新后的結果:
db.products.find({_id: 1},{name: 1, price: 1, "spec.ram": 1} )[ { _id: 1, name: 'xPhone', price: 749, spec: { ram: 8 } } ]總結
以上是生活随笔為你收集整理的《MongoDB入门教程》第15篇 文档更新之$inc操作符的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 镜头分类
 - 下一篇: 拓扑学 -- from BBS 水木清华