多字段上的MongoDB索引

多字段上的MongoDB索引,mongodb,indexing,mongodb-indexes,Mongodb,Indexing,Mongodb Indexes,我已经阅读了MongoDB in action手册中关于索引的章节,我想知道是否有人可以详细介绍一下它关于索引的内容 如果我有一个包含a、b、c、d、e的索引,并且我查询a、b、c,则使用该索引。如果我查询a、c、e,会发生什么?索引是仅用于查询a还是在查询其他字段时使用 在这种情况下,将索引也放在a、c、e上是否更有意义。我这样问是因为我有一个前端链接到这些字段,用户可以在这些字段中创建一个自由形式的查询(a、b、c、f可以是一个)。我是否需要所有可能通过的选项的索引?MongoDB中的复合索

我已经阅读了MongoDB in action手册中关于索引的章节,我想知道是否有人可以详细介绍一下它关于索引的内容

如果我有一个包含
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
a
a,b
的索引将被视为前缀(),因为对
a,b,c
a,c,e
的查询都应产生索引用法;至于
a,c,e
是否有效地使用索引,则完全是另一个问题

我这样问是因为我有一个前端链接到这些字段,用户可以在这些字段中创建一个自由形式的查询(a、b、c、f可以是一个)。我是否需要一个索引,用于所有可能通过的选项


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

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

因此,对于
a,b,c,d,e
a
a,b
的索引将被视为前缀(),因为对
a,b,c
a,c,e
的查询都应产生索引用法;至于
a,c,e
是否有效地使用索引,则完全是另一个问题

我这样问是因为我有一个前端链接到这些字段,用户可以在这些字段中创建一个自由形式的查询(a、b、c、f可以是一个)。我是否需要一个索引,用于所有可能通过的选项


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

啊,我忘了解释
了。在添加
a、b、c、d、e
索引之后,我会做一些测试,看看它是如何影响事情的。啊,我忘记了
解释了。在添加
a、b、c、d、e
索引后,我将进行一些测试,看看它是如何影响事情的。