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