$min聚合运算符用于返回最小值。$min对于不同的类型的值使用BSON的比较顺序。
$min可以用于下面的这些阶段:
$addFields$bucket$bucketAuto$group$match$project$replaceRoot$replaceWith$set$setWindowFields
语法
当用于$bucket、$bucketAuto、$group、$setWindowFields阶段时,$min使用下面的语法:
{
$min: <expression> }
在用于其他阶段时,使用的语法如下:
-
指定一个操作数的情况
{ $min: <expression> } -
指定一个数组操作数的情况
{ $min: [ <expression1>, <expression2> ... ] }
使用
空值和缺失值的处理
对于部分文档(注意不是全部哦)中字段为null或缺失的情况,$min运算符只处理非空且非缺失的字段。如果所有文档相关的字段为空或缺失,$min返回的最小值是null。
数组操作数的处理
对于$group和$setWindowFields阶段,如果表达式解析为数组,$min不会去遍历数组,而是把数组当做一个整体来处理。
对于其他阶段:
- 对于单个操作数解析为数组的情况,
$min会遍历数组返回最小值。 - 对于数组操作数,如果元素被解析为数组,
$min也不会对数组进行遍历,而是把它当做一个整体。
举例
在$group阶段使用
sales集合有下列文档:
{
"_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2, "date" : ISODate("2014-01-01T08:00:00Z") }
{
"_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1, "date" : ISODate("2014-02-03T09:00:00Z") }
{
"_id" : 3, "item" : "xyz", "price" : 5, "quantity" : 5, "date" : ISODate("2014-02-03T09:05:00Z") }
{
"_id" : 4, "item" : "abc", "price" : 10, "quantity" : 10, "date" : ISODate("2014-02-15T08:00:00Z") }
{
"_id" : 5, "item" : "xyz", "price" : 5, "quantity" : 10, "date" : ISODate("2014

本文详细解释了MongoDB中的$min聚合运算符如何处理空值、缺失值和数组操作,通过实例展示了在$group、$setWindowFields和$project阶段的使用方法,帮助开发者理解其在数据聚合过程中的作用。
最低0.47元/天 解锁文章
5883

被折叠的 条评论
为什么被折叠?



