【发布时间】:2020-09-16 06:56:52
【问题描述】:
我正在为一个项目使用 mongodb。需要知道哪个是更好的查询实现。
假设我必须根据条件(不是 id)从总共 1000 个文档中搜索 10 个文档。
- 最好使用文档 _id 进行查询(在将所需的 id 存储在另一个集合中之后,通过在插入完成时检查条件)
或 - 是不是最好遍历所有的文档,使用条件得到需要的文档
这里的主要目的是将文档分成不同的类别并显示属于特定类别的文档。那么存储属于每个类别的文档的 id 还是通过遍历所有文档来搜索该类别中的文档?
我听说 mongodb 使用散列索引(所以感觉选项 1 会更快),但我找不到任何相关信息。因此,关于文档存储和查询的简短描述也很好。
【问题讨论】:
-
最佳查询方式取决于条件的性质和文档的内容。我们可以举个例子吗?
-
是的,我有一个包含酒店名称的文档,我想搜索所有中国餐馆。最好在每个文档中使用 type:"Chinese" 或 Chinese:"no" 之类的内容,或者保留另一个集合类别并使用 Chinese:[id1, id2, id3...]
-
只想知道是使用一些 for 循环搜索每个 Id 更好还是遍历整个餐厅集合并获取满足条件的每个餐厅。