MongoDB:在树中搜索的推荐架构

时间:2018-06-19 22:22:12

标签: mongodb database-design

目前,我有一棵具有各种深度的树,其中包含用户的文档。

John \ folder1 \ sub-folder2 ... \ document Peter \ folder1 ... \ document

但是正如我所看到的,Mongo不支持嵌套文档中的索引。 我尝试将我的数据库反规范化为带有子代ID的User \ documents。但是似乎搜索将搜索整个集合,而不仅是给定应用程序用户的文档。

我应该为每个应用程序用户创建收藏集吗?

使用内置的Mongo聚合方法更好的解决方案是什么?

1 个答案:

答案 0 :(得分:0)

您只需要使用一个集合,而不必为每个用户创建集合。

使用聚合的第一件事是按userId进行匹配,该匹配将过滤该用户的所有文档,然后进行任何聚合操作。

mongo中的聚合是管道。文档从一项操作转移到另一项操作。

因此,如果您确实匹配了userId,则只会选择那些文档,并且下一个聚合操作将仅获取那些与userId匹配的文档。因此,您的聚合速度仍然更快。