如何在MongoDB中搜索深层树状结构?

Ahm*_*med 4 database mongodb

解释我的情况最简单的方法是使用标准文件系统结构,这与我想要完成的工作接近:

Folder A
- Folder A2
-- File 1
-- File 2
- File 3
Folder B
- Folder B2
- Folder B3
-- File 4
Run Code Online (Sandbox Code Playgroud)

文件夹有字段:

- _id
- parents (in my case there can actually be multiple!)
Run Code Online (Sandbox Code Playgroud)

文件有字段

- _id
- targetFolder
Run Code Online (Sandbox Code Playgroud)

因此,基本上文件可能在层次结构中非常深.

如何有效地搜索和构建我的数据库,以便我可以拥有深层文件夹层次结构,其中任何一个都有文件.

我希望能够执行一个返回例如文件夹A下的每个文件的查询.我怎么能这样做?

小智 5

我推荐这个主题的MongoDb官方文档.在数据库中存储树是非常重要的,每个解决方案都有其优点和缺点.我经历了成功的物化路径模型,这在层次搜索上非常有效,但在树修改上很昂贵,因为你必须更新每个后代节点.