Mongodb欄位更新$max操作符
阿新 • • 發佈:2019-01-27
一、定義
$max操作符會在指定的值大於欄位值的時候更新掉欄位值,$max操作符可以比較不同的資料型別,使用BSON比較排序規則;
$max操作符有如下的格式:
{ $max: { <field1>: <value1>, ... } }
指定的欄位是在陣列或者內嵌文件中的時候使用點號;
二、規則
如果指定的欄位不存在的話$max操作符會設定當前值為指定的欄位;
三、例如,$max操作符欄位比較
考慮如下的scores文件集合
{ _id: 1, highScore: 800, lowScore: 200 }
如下操作指定highScore欄位值950和當前庫中的值800比較,最後的結果是會將欄位更新為950,因為950比800大
db.scores.update( { _id: 1 }, { $max: { highScore: 950 } } )
修改後的文件集合是:
{ _id: 1, highScore: 950, lowScore: 200 }
下面的操作不會影響到庫中highScore欄位值的變化:
db.scores.update( { _id: 1 }, { $max: { highScore: 870 } } )
操作的結果是:
{ _id: 1, highScore: 950, lowScore: 200 }
四、使用$max操作符進行日期比較
考慮如下tags集合文件
{ _id: 1, desc: "crafts", dateEntered: ISODate("2013-10-01T05:00:00Z"), dateExpired: ISODate("2013-10-01T16:38:16.163Z") }
使用$max操作符修改日期欄位dateExpired:
db.tags.update(
{ _id: 1 },
{ $max: { dateExpired: new Date("2013-09-30") } }
)
操作結果是:
{
_id: 1,
desc: "decorative arts",
dateEntered: ISODate("2013-10-01T05:00:00Z"),
dateExpired: ISODate("2013-10-01T16:38:16.163Z")
}