Docs 菜单
Docs 主页
/
MongoDB Manual
/ / / /

$min

在此页面上

  • 定义
  • 行为
  • 举例
$min

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

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

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

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

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

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

从 MongoDB 5.0 开始,使用带空操作数表达式 ({ }) 的更新操作符(如 $min)时,mongod 不会再引发错误。空更新不会导致任何变化,也不会创建 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

在此页面上