查询依赖数组大小与值匹配的文档

我有以下架构:

Collection1 name slug Collection2 name slugCollection1 

Collection1Collection2之间的“连接”是通过字段slugslugCollection1

我尝试使用MongoDB的聚合框架实现一个请求,以获取具有特定名称和Collection2types的依赖元素数量的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的字段部分。

有没有一种方法来实现这样的查询? 谢谢!

您当然可以使用$matchpipe道来按照给定的条件过滤文档:

 [ { "$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 } } } ]