MongoDB 在多个字段上建立索引

标签 mongodb indexing mongodb-indexes

我已经阅读了 MongoDB in action book 中关于索引的章节,想知道是否有人可以扩展其中关于索引的内容。

如果我有一个涵盖 a,b,c,d,e 的索引,并且我在 a,b,c 上查询,则使用该索引。如果我查询 a,c,e 会怎样?索引是只用于查询a还是用于查询其他字段?

在这种情况下,在 a,c,e 上也有索引是否更有意义。我问是因为我有一个前端链接到这些字段,用户可以在其中创建自由格式查询(a,b,c,f 可能是一个)。我是否需要所有可能通过的选项的索引?

最佳答案

MongoDB 中的复合索引通过前缀方法工作。

因此对于 a,b,c,d,e 的索引,aa,b 将被视为前缀 ( http://docs.mongodb.org/manual/core/indexes/#id5 ) ,因此对 a,b,ca,c,e 的查询应该产生索引用法;至于 a,c,e 是否高效地使用索引完全是另一个问题。

I ask because I have a front end piece that links to these fields where users can create a free form query (a,b,c,f could be one). Do I need an index for all possible options that could come through?

嗯,如果 a 始终是第一个定义的字段,那么可能不是(explain 当然在您的数据集上会更好),否则您可能需要一些组合,是的.

关于MongoDB 在多个字段上建立索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15177873/

相关文章:

mongodb - 如何正确创建索引mongodb?

mongodb - 为什么我不能直接分配 ListField 的值?

MongoDB 聚合 : $Project (how to use a field on the other field of the same projection pipeline)

node.js - 在将结果发送到 View 之前,无法更改路由中 MongoDB/MongooseJS 的结果(Node js)

mongodb - 如何使用 PM2 运行 MongoDB

indexing - 具有自定义索引的数组的功能类似于 `enumerate`?

python - 在 Pandas DataFrame 中构建多重索引

javascript - 从所选元素中获取索引

mongodb - MongoDB中的索引列表?

mongodb - 当你 'index' 一个 MongoDB 数据库时到底发生了什么?