查询依赖数组大小与值匹配的文档
我有以下架构:
Collection1 name slug Collection2 name slugCollection1
Collection1
和Collection2
之间的“连接”是通过字段slug
和slugCollection1
。
我尝试使用MongoDB的聚合框架实现一个请求,以获取具有特定名称和Collection2
types的依赖元素数量的Collection1
所有元素。
我可以通过$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
的字段部分。
有没有一种方法来实现这样的查询? 谢谢!
您当然可以使用$match
pipe道来按照给定的条件过滤文档:
[ { "$lookup": { "from": "Collection2", "localField": "slug", "foreignField": "slugCollection1", "as": "elements" } }, { "$project": { "_id": 0, "id": "$id", "name": 1, "slug": 1, "elementsNumber": { "$size": "$elements" } } }, { "$match": { "elementsNumber": { "$gt": 3 } } } ]