【发布时间】:2021-02-17 06:56:24
【问题描述】:
我有如下架构
[
{
id:"111"
tags:[222,333,444,555]
},
{
id: "222"
tags:[312,345,534]
},
{
id:"333"
tags:[111,222,333,444,555]
},
]
我想在聚合管道中找到所有标签数组大小大于$match 返回的文档大小的文档,所以在上面的例子中。文档数为 3,所以我想返回标签数组大小大于 3 的所有文档
[
{
id:"111"
tags:[222,333,444,555]
},
{
id:"333"
tags:[111,222,333,444,555]
},
]
我正在使用聚合管道来处理其他信息,我被困在如何存储文档大小以便我可以找到所有大于文档大小的标签
下面是我正在使用的查询,我想在聚合中一次调用
.aggregate([
{
"$match":{
"ids":{
"$in":[
"111",
"222",
"333"
]
}
}
})]
【问题讨论】:
-
不,它没有静态大小,在我的情况下,数组的大小取决于“匹配”返回的文档大小聚合
-
您的意思是集合大小(文档数),如集合中的文档数?
-
是的,聚合管道中$match返回的文档数