假设我有以下文档架构:
{
_id: ObjectId(...),
name: "Kevin",
weight: 500,
hobby: "scala",
favoriteFood : "chicken",
pet: "parrot",
favoriteMovie : "Diehard"
}
如果我在 上创建复合索引name-weight
,我将能够指定一个严格的参数(名称 ==“Kevin”)和一个range
权重(介于 50 和 200 之间)。但是,我不能反过来:指定一个权重并给出一个“范围”的名称。
当然,在涉及范围查询的情况下,复合索引顺序很重要。
如果只使用精确查询(例如:name == "Kevin"、weight == 100、hobby == "C++"),那么顺序对于复合索引真的很重要吗?