1
我有以下模式相匹配:查询的文档,其中依赖阵列大小的值
Collection1
name
slug
Collection2
name
slugCollection1
“链接”和Collection2
之间Collection1
是通过字段slug
和slugCollection1
。
我尝试使用MongoDB的聚合框架实现一个请求,以获取Collection1
的所有元素,该元素具有Collection2
类型的相关元素的特定名称和数量。
我可以得到提示借力$project
:
[
{
"$lookup": {
"from": "Collection2",
"localField": "slug",
"foreignField": "slugCollection1",
"as": "elements"
}
},
{
"$project": {
"_id": 0,
"id": "$id",
"name": 1,
"slug": 1,
"elementsNumber": {
"$size": "$elements"
}
}
}
]
但我不能使用elementsNumber
场到$match
后。我想这是因为它不是Collection1
的字段部分。
有没有一种方法来实现这样的查询? 谢谢!
是什么让你说你不能使用'$比赛中新的字段'elementsNumber' '管道?当然这是可能的; '{“$ match”:{“elementsNumber”:{“$ gt”:3}}}'例如... – chridam
非常感谢@chridam的提示!在调查了更多这个问题之后,我发现我使用了一个数字而不是整数作为标准。切换到整数解决了问题!你对这种能力的暗示帮助了我。如果你想发布答案,我会接受它;-) –