Mongodb中的递归查询

杰瑞

在MongoDB中使用父子树设置的数据。而且我需要每一行的父母详细信息。我无法在Mongo中填充以下数据集。

馆藏结构:

在此处输入图片说明

预期产量:

在此处输入图片说明

米克尔

您需要$ graphLookup在MongoDB中运行递归查询。获得对象及其所有对象的父对象后,可以运行$ concatArrays创建一个数组,然后将$ unwind$ replaceRoot结合使用以在结果集中获取多个文档:

db.collection.aggregate( [
    {
        $graphLookup: {
            from: "collection",
            startWith: "$parent_org",
            connectFromField: "parent_org",
            connectToField: "_id",
            as: "hierarchy"
        }
    },
    {
        $match: {
            _id: 4
        }
    },
    {
        $project: {
            result: {
                $concatArrays: [ "$hierarchy", [ { _id: "$_id", "org_name": "$org_name", parent_org: "$parent_org" } ] ]
            }
        }
    },
    {
        $unwind: "$result"
    },
    {
        $replaceRoot: {
            newRoot: "$result"
        }
    },
    {
        $sort: {
            _id: 1
        }
    }
])

蒙哥运动场

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章