假设我有一个包含以下文档的MongoDB集合:
{
_id,
name: "someName",
children:[
ObjectId,
ObjectId,
]
}
是否可以使用聚合框架和查找与子进行深度嵌套?另一个问题是我们通常不知道孩子的查找字段是什么,因此孩子有一个“Lookup”数组,其中包含应该在数据库中查找的字段。
例如,结果的深度为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驱动程序。
答案 0 :(得分:0)
我在这里看到两个解决方案:
更改架构并尝试使用嵌套集模式。请参阅https://docs.mongodb.com/manual/tutorial/model-tree-structures-with-nested-sets/
使用递归函数来获取所需的所有数据,但是您将遇到诸如N聚合方法调用之类的问题