假设我有这样的文档:
文档1:
_id:"1"
name:"Item 1"
quantity:1
min:3
alert:"Yes"
文档2:
_id:"2"
name:"Item 2"
quantity:12
min:5
alert:"No"
如何只获取预警值为是的单据,不包括预警值为否的单据?
我从一些聚合中获得的那些文档:
[
{
'$group': {
'_id': '$id',
'name': {
'$first': '$name'
},
'sum_quantity': {
'$sum': '$quantity'
},
'alertMin': {
'$first': '$alertMin'
}
}
}, {
'$project': {
'_id': '$_id',
'name': '$name',
'quantity': '$sum_quantity',
'minimum': '$alertMin',
'alert': {
'$cond': [
{
'$lte': [
'$sum_quantity', '$alertMin'
]
}, 'Yes', 'No'
]
}
}
}
]
我期望得到以下结果:
_id:"1"
name:"Item 1"
quantity:1
min:3
alert:"Yes"
发布于 2019-06-21 16:50:59
在aggregation
管道的末尾(或您希望匹配的任何位置)添加一个$match
stage,它将为您提供所需的结果。
{
$match : {
alert : "yes"
}
}
阅读有关$match here的更多信息
发布于 2019-06-21 17:10:12
您可以使用单个流水线阶段$match来完成此任务。为此,您不需要使用任何其他阶段。
如下所示进行尝试:
db.collection.aggregate([
{
$match: {
alert: "Yes"
}
}
])
https://stackoverflow.com/questions/56699484
复制相似问题