使用 mongodb 中查找记录的 $cond 获取 $size 计数
Getting $size count with a $cond of a lookup record in mongodb
下面是我在 Playgroun 上的查询和数据,它适用于两个集合
MongoPlayGroup Collection structure and Query
在查询中,我试图再添加一个 $match 条件,其中 return 我是子文档的计数,即 collectB 在过滤器之后,如下所示
{
$match: {
'collectB.finalValue' : 'Cost'
}
}
现在我得到以下结果。我正在尝试添加一个计数列,该列将 return 计数,具体取决于 finalValue 的过滤器值。基本上我想要 _id =1
的记录数
最终计数 = 最终值:'Cost'
count = 所有记录属于 _id 1
在投影中,可以使用$filter
{
$project: {
"_id": 1,
count: {
$size: {
$filter: {
input: "$collectB",
cond: {
$eq: [
"$$this.finalValue",
"Cost"
]
}
}
}
},
"collectB.generated": 1,
"collectB.finalValue": 1
}
}
下面是我在 Playgroun 上的查询和数据,它适用于两个集合
MongoPlayGroup Collection structure and Query
在查询中,我试图再添加一个 $match 条件,其中 return 我是子文档的计数,即 collectB 在过滤器之后,如下所示
{
$match: {
'collectB.finalValue' : 'Cost'
}
}
现在我得到以下结果。我正在尝试添加一个计数列,该列将 return 计数,具体取决于 finalValue 的过滤器值。基本上我想要 _id =1
的记录数最终计数 = 最终值:'Cost' count = 所有记录属于 _id 1
在投影中,可以使用$filter
{
$project: {
"_id": 1,
count: {
$size: {
$filter: {
input: "$collectB",
cond: {
$eq: [
"$$this.finalValue",
"Cost"
]
}
}
}
},
"collectB.generated": 1,
"collectB.finalValue": 1
}
}