MongoDB:树中搜索的推荐模式

MongoDB:树中搜索的推荐模式,mongodb,database-design,Mongodb,Database Design,目前我有一个包含用户文档的不同深度的树 John\folder1\sub-folder2…\document Peter\folder1…\document 但正如我所看到的,Mongo不支持嵌套文档中的索引。 我试图将我的数据库反规范化为具有子ID的用户\文档。但搜索似乎会搜索整个集合,而不仅仅是特定应用程序用户的文档 我应该为每个应用程序用户创建集合吗 使用内置Mongo聚合方法的更好解决方案是什么?您只需要使用一个集合,而不是为每个用户创建集合 使用聚合,您要做的第一件事是按userId进

目前我有一个包含用户文档的不同深度的树

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

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

我应该为每个应用程序用户创建集合吗


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

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

使用聚合,您要做的第一件事是按userId进行匹配,它会按该用户筛选所有文档,然后执行任何聚合操作

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


因此,如果您在userId上进行匹配,那么将只选择那些文档,并且下一个聚合操作将只获取与userId匹配的文档。所以您的聚合速度更快。

不幸的是,我的文档体非常小,为每个实体添加用户ID将非常昂贵。此外,建造树木的操作成本也相当高。