如何从mongodb中检索具有直接父文档的子文档?

如何从mongodb中检索具有直接父文档的子文档?,mongodb,Mongodb,我正在尝试从mongodb集合中筛选子文档。以及试图获取相应的直接父文档的子文档 **My parent document:** { "id":"123", "source":"02", "child":{"id":"456"}} **My child document:** { "id":"456", "source":"01", "parent":{"id":"123"}} 如何动态获取子文档及其相应的父文档?有人能帮我吗…您可以使用聚合管道阶段对同一集合执行左外部联接(未分块)。给

我正在尝试从mongodb集合中筛选子文档。以及试图获取相应的直接父文档的子文档

**My parent document:**

{ "id":"123", "source":"02", "child":{"id":"456"}}

**My child document:**

{ "id":"456", "source":"01", "parent":{"id":"123"}}
如何动态获取子文档及其相应的父文档?有人能帮我吗…

您可以使用聚合管道阶段对同一集合执行左外部联接(未分块)。给定示例文档,要检索父文档的子文档,请执行以下操作:

要从子文档检索父文档,请执行以下操作:

我还建议复习,尤其是:


它们都在同一个收藏中吗?@Arsen Davtyan是的,它们都在同一个收藏中
db.collectionA.aggregate([
       {"$match": {"child": {"$exists": 1} } }, 
       {"$lookup":{
            "from": "collectionA", 
            "localField": "id", 
            "foreignField": "parent.id", 
            "as": "children"}
        }
]);
db.collectionA.aggregate([
       {"$match": {"parent": {"$exists": 1} } }, 
       {"$lookup":{
            "from": "collectionA", 
            "localField": "id", 
            "foreignField": "child.id", 
            "as": "parent"}
        }
]);