定义
返回一组文档中的最小值。
$min 累加器可在以下阶段使用:
注意
消歧
本页介绍了 $min 用作 累加器 时的情况。累加器对一组输入文档返回聚合值,如总和、最大值或最小值。
您还可以在这些其他上下文中使用 $min:
$min (expression), 返回数组中的最小值。$min (window function),用于在$setWindowFields阶段中返回特定窗口中文档的最小值。
语法
{ $min: <expression> }行为
结果类型
当 $min 比较不同类型的值时,会使用 BSON 比较顺序 来确定哪个值较小。
空值或缺失值
如果某些文档的字段值为 null 或缺少该字段,$min 将忽略这些文档。它只考虑非空值和非缺失值。
如果所有文档的该字段值为 null 或缺少该字段,则 $min 返回 null。
数组操作数
在 $group 阶段,如果表达式解析为数组,$min 不会遍历数组。它比较整个数组。
相等值
如果多个值相等,$min 可能会返回其中的任何一个值。无法提供 ACID 一致性保证来确定 $min 返回哪个相等值。
示例:在不区分大小写的排序规则下,"a" 和 "A" 可以相等。无法提供 ACID 一致性保证,也无法保证返回对象的顺序。
例子
本页上的示例使用来自 sample_mflix 数据集的数据。有关如何将此数据集加载到您的自管理 MongoDB 部署中的详细信息,请参阅 加载示例数据集。如果您对示例数据库进行了任何修改,您可能需要删除并重新创建数据库,才能运行此页面上的示例。
在 $group 阶段中使用 $min
以下示例按 MPAA 评级对电影进行分组,并返回每个组的最低 IMDb 评级。
db.movies.aggregate( [ { $match: { rated: { $in: [ "G", "PG", "PG-13", "R" ] }, "imdb.rating": { $type: "double" } } }, { $group: { _id: "$rated", lowestRating: { $min: "$imdb.rating" } } }, { $sort: { _id: 1 } }] )前面的管道: