Docs 菜单

Docs 主页开发应用程序MongoDB Manual

$min

在此页面上

  • 定义
  • 行为
  • 举例
$min

$min如果 指定值 小于 字段的当前值,则 会将字段值更新为指定值。$min 操作符可以使用 BSON 比较顺序来比较不同类型的值。

{ $min: { <field1>: <value1>, ... } }

要在嵌入式文档或数组中指定 <field>,请使用点符号。

从 MongoDB 5.0 开始,更新操作符按字典顺序处理具有基于字符串的名称的文档字段。具有数字名称的字段按数字顺序处理。详情请参阅更新操作符行为

如果该字段不存在, $min操作符会将该字段设置为指定值。

对于不同类型值(例如数字和空值)之间的比较, $min使用BSON 比较顺序。

从 MongoDB5 0mongod$min{ }开始。当您将 等更新操作符与空操作数表达式 ( ) 一起使用时, 、 不再引发错误。空更新不会导致任何更改,也不会创建 oplog 条目(意味着该操作为“不操作”)。

创建 scores 集合:

db.scores.insertOne( { _id: 1, highScore: 800, lowScore: 200 } )

lowScore该文档的 当前值为200 。以下操作使用$min 200150lowScore将 与指定值 进行比较,并将150 的值更新为150 200,因为 小于 :

db.scores.updateOne( { _id: 1 }, { $min: { lowScore: 150 } } )

现在,scores 集合包含以下修改后的文件:

{ _id: 1, highScore: 800, lowScore: 150 }

由于字段 lowScore 的当前值 150 小于 250,因此下一步操作无效:

db.scores.updateOne( { _id: 1 }, { $min: { lowScore: 250 } } )

文档在 scores 集合中保持不变:

{ _id: 1, highScore: 800, lowScore: 150 }

创建 tags 集合:

db.tags.insertOne(
{
_id: 1,
desc: "crafts",
dateEntered: ISODate("2013-10-01T05:00:00Z"),
dateExpired: ISODate("2013-10-01T16:38:16Z")
}
)

以下操作将 dateEntered 字段的当前值(即 ISODate("2013-10-01T05:00:00Z"))与指定日期 new Date("2013-09-25") 进行比较,以确定是否更新该字段:

db.tags.updateOne(
{ _id: 1 },
{ $min: { dateEntered: new Date("2013-09-25") } }
)

操作会更新 dateEntered 字段:

{
_id: 1,
desc: "crafts",
dateEntered: ISODate("2013-09-25T00:00:00Z"),
dateExpired: ISODate("2013-10-01T16:38:16Z")
}

提示

另请参阅:

← $inc
$max →

在此页面上