《MongoDB入门教程》第16篇 文档更新之$min/$max操作符
本文將會介紹如何在 update() 方法中使用 $min 和 $max 操作符更新指定字段的值。
$min 操作符
$min 是一個(gè)字段更新操作符,如果指定的數(shù)值小于(<)字段當(dāng)前值,將字段的值修改為指定值。
$min 操作符的語法如下:
{ $min: {<field1>: <value1>, ...} }如果字段當(dāng)前值大于等于指定的值,不會執(zhí)行更新操作。
如果指定的字段不存在,$min 操作符將會創(chuàng)建字段并設(shè)置字段的值。
$min 示例
下文中的示例將會使用以下集合:
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]}])以下示例使用 $min 操作符更新文檔(_id: 5)的 price 字段:
db.products.updateOne({_id: 5 }, {$min: {price: 699} })查詢匹配了一個(gè)文檔,但是沒有執(zhí)行更新操作:
{acknowledged: true,insertedId: null,matchedCount: 1,modifiedCount: 0,upsertedCount: 0 }原因在于 699 大于字段的當(dāng)前值(599)。
以下示例使用 $min 操作符將文檔(_id: 5)的 price 字段更新為 499:
db.products.updateOne({_id: 5 }, {$min: {price: 499} })此時(shí),查詢更新了一個(gè)文檔:
{acknowledged: true,insertedId: null,matchedCount: 1,modifiedCount: 1,upsertedCount: 0 }驗(yàn)證文檔更新后的內(nèi)容:
db.products.find({ _id: 5 }, { name: 1, price: 1 })[ { _id: 5, name: 'SmartPhone', price: 499 } ]$max 操作符
$max 是一個(gè)字段更新操作符,如果指定的數(shù)值大于(>)字段當(dāng)前值,將字段的值修改為指定值。
$max 操作符的語法如下:
{ $max: {<field1>: <value1>, ...} }如果字段當(dāng)前值小于等于指定的值,不會執(zhí)行更新操作。
如果指定的字段不存在,$max 操作符將會創(chuàng)建字段并設(shè)置字段的值。
$max 示例
以下示例使用 $max 操作符更新文檔(_id: 1)的 price 字段:
db.products.updateOne({_id: 1 }, {$max: {price: 699} })查詢匹配了一個(gè)文檔,但是沒有執(zhí)行更新操作:
{acknowledged: true,insertedId: null,matchedCount: 1,modifiedCount: 0,upsertedCount: 0 }原因在于 699 小于字段的當(dāng)前值(799)。
以下示例使用 $min 操作符將文檔(_id: 1)的 price 字段更新為 899:
db.products.updateOne({_id: 1 }, {$max: {price: 899} })此時(shí),查詢更新了一個(gè)文檔:
{acknowledged: true,insertedId: null,matchedCount: 1,modifiedCount: 1,upsertedCount: 0 }驗(yàn)證文檔更新后的內(nèi)容:
db.products.find({ _id: 1 }, { name: 1, price: 1 })[ { _id: 1, name: 'xPhone', price: 899 } ]總結(jié)
以上是生活随笔為你收集整理的《MongoDB入门教程》第16篇 文档更新之$min/$max操作符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 关于OA的二次开发,可以这样来看
- 下一篇: 使用nlite自己diy操作系统
