目前,我有一棵具有各种深度的树,其中包含用户的文档。
John \ folder1 \ sub-folder2 ... \ document Peter \ folder1 ... \ document
但是正如我所看到的,Mongo不支持嵌套文档中的索引。 我尝试将我的数据库反规范化为带有子代ID的User \ documents。但是似乎搜索将搜索整个集合,而不仅是给定应用程序用户的文档。
我应该为每个应用程序用户创建收藏集吗?
使用内置的Mongo聚合方法更好的解决方案是什么?
答案 0 :(得分:0)
您只需要使用一个集合,而不必为每个用户创建集合。
使用聚合的第一件事是按userId进行匹配,该匹配将过滤该用户的所有文档,然后进行任何聚合操作。
mongo中的聚合是管道。文档从一项操作转移到另一项操作。
因此,如果您确实匹配了userId,则只会选择那些文档,并且下一个聚合操作将仅获取那些与userId匹配的文档。因此,您的聚合速度仍然更快。