【发布时间】:2013-09-27 11:46:36
【问题描述】:
假设我有以下文档架构:
{
_id: ObjectId(...),
name: "Kevin",
weight: 500,
hobby: "scala",
favoriteFood : "chicken",
pet: "parrot",
favoriteMovie : "Diehard"
}
如果我在name-weight 上创建一个复合索引,我将能够指定一个严格的参数(name == "Kevin")和一个range 权重(介于 50 和 200 之间)。但是,我不能反过来:指定一个权重并给出一个“范围”的名称。
当然,复合索引顺序在涉及范围查询时很重要。
如果只使用 exact 查询(例如:name == "Kevin"、weight == 100、hobby == "C++"),那么顺序对于复合索引真的很重要吗?
【问题讨论】:
-
您能详细说明一下吗?我使用了
explain()命令,但我没有遵循。 -
explain是您回答此类问题的方式,如 Philipp 的回答中所述。