1
我有一个使用MongoDB的聚合框架的现有报告,我想添加一个新的字段 - 一个数字字段之一小于给定值的所有文档的计数。MongoDB聚合管道:用字段计数文档小于值?
我的文档有一个长度字段,我已经计算出了平均值,所以除了这个之外,我还希望文档的数量低于某个数字。
我目前聚集的管道很简单:
db.streams.aggregate([
{ $match: { track_id: "ecb96af4537d4263b83f5675dbcc0388" }},
{ $group: { _id: "$source", listens: { $sum: 1 } } }
])
我使用$sum
和$lt
尝试过,但数量始终是0。我猜这是因为只有$sum
当返回1
时计数,但$lt
返回true
。这是我的尝试:
db.streams.aggregate([{
$match: {
track_id: "ecb96af4537d4263b83f5675dadd0388"
}
}, {
$group: {
_id: "$source",
listens: {
$sum: 1
},
skips: {
$sum: {
$lt: ["$length", 1000]
}
}
}
}, ])
有谁知道我能做到这一点?谢谢!
完美,太感谢你了! –