繁体   English   中英

MongoDb聚合查找嵌套数组

[英]MongoDb Aggregation lookup nested Array

可以说我有一个MongoDB集合,其中包含以下文档:

{
    _id,
    name: "someName",
    children:[
        ObjectId,
        ObjectId,
    ]
}

是否可以使用聚合框架和查找与子对象进行深度嵌套? 另一个问题是,我们不经常知道子项的查找字段是什么,因此,子项具有“查找”数组,其中包含应在数据库中查找的字段。

因此,例如,结果的深度为3:

{
    _id,
    name: "someName",
    children:[
        {
            _id,
            name: "someName",
            children:[
                {
                    _id,
                    name: "someName",
                    children:[
                        ObjectId,
                        ObjectId,
                    ]
                }
                {
                    _id,
                    name: "someName",
                    children:[
                        ObjectId,
                        ObjectId,
                    ]
                }
            ]
        },
        {
            _id,
            name: "someName",
            children:[
                ObjectId,
                ObjectId,
            ]
        }
    ]
}

我希望能够创建一个使我能够指定查找“深度”的函数。

我们正在使用mongodb NodeJs驱动程序。

我在这里看到2种解决方案:

  1. 要更改架构并尝试使用嵌套集模式。 参见https://docs.mongodb.com/manual/tutorial/model-tree-structures-with-nested-sets/

  2. 要创建一个递归函数以获取所需的所有数据,但您将遇到诸如N聚合方法调用之类的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM