MongoDB 中索引的顺序重要吗?

use*_*951 3 mongodb

MongoDB 开发人员提示和技巧中的提示 #25正确吗?

它说这个查询:

collection.find({"x" : criteria, "y" : criteria, "z" : criteria})
Run Code Online (Sandbox Code Playgroud)

可以优化为

collection.ensureIndex({"y" : 1, "z" : 1, "x" : 1})
Run Code Online (Sandbox Code Playgroud)

我认为这是错误的,因为要使其工作,x 应该在前面。我认为索引的顺序很重要。

那么我到底哪里出错了呢?

Joh*_*yHK 6

仅当查询不包含索引中的所有字段时,索引中字段的顺序才重要。此查询引用所有三个字段,因此索引中字段的顺序并不重要。

请参阅有关复合索引的文档中的更多详细信息。

查询对象中字段的顺序相关find