我有以下架构:
{
A: String,
B: String,
C: String,
D: String,
}
如果我有一个包含A,B,C和A,B,D的where过滤器,我应该:
索引(A,B,C)和(A,B,D)
索引(A,B),分别是(C)和(D)?
索引(A,B,C,D)?
答案 0 :(得分:2)
索引(A,B,C)和(A,B,D)
索引(A,B)以及分别的(C)和(D)要求索引交集,该交集必须满足许多条件,以至于在野外几乎不会发生。
索引(A,B,C,D)可以完美地用于(A,B,C)查询,仅与(A,B,D)查询的索引(A,B)一样好。
https://docs.mongodb.com/manual/core/index-compound/#prefixes
中有很好的记录