MongoDB提供了不同类型的字段更新运算符来更新文档中字段的值,最大运算符( $max
)是其中之一。如果指定值大于当前值,则此运算符将使用指定值更新该字段。
- 该运算符将根据BSON比较顺序比较不同数据类型的值。
- 您也可以使用点表示法在嵌入式/嵌套文档中使用此运算符。
- 您可以根据需要在update(),updateOne()等方法中使用此运算符。
- 如果给定的字段不存在,则此运算符将创建字段并设置该字段的值。
句法:
{ $max: { field1: value1, field2: value2 ... } }
在以下示例中,我们正在使用:
Database: GeeksforGeeks
Collection: contributor
Document: three documents that contain the details of the contributors in the form of field-value pairs.
使用$max
运算符比较值(或数字):
在此示例中,我们将工资字段的值(或数字)与指定值(即5000)进行比较。此处,指定值大于当前值。因此, $max
运算符借助update()方法将salary字段的值更新为5000。
db.contributor.update({name: "Mohit"}, {$max: {salary: 5000}})
如果salary字段的当前值小于指定的值,那么此运算符将不会使用指定的值(即4000)来更新salary字段的值。
db.contributor.update({name: "Mohit"}, {$max: {salary: 4000}})
使用$ max运算符比较嵌套文档中的值(或数字):
在此示例中,我们将等级字段的值(或数字)与指定值(即30)进行比较。此处,指定值大于当前值。因此,$ max运算符借助update()方法将salary字段的值更新为30。
db.contributor.update({name: "Priya"}, {$max: {"personal.rank": 30}})
如果等级字段的当前值小于指定的值,则此运算符不会使用指定的值(即13)更新等级字段的值。
db.contributor.update({name: "Priya"}, {$max: {"personal.rank": 13}})