MongoDB 决定 WinningPlan 和 RejectedPlans

MongoDB deciding WinningPlan and RejectedPlans

我有一个 mongo 集合如下:

{
    "_id" : ObjectId("6225a7b8d06fdc0abe145634"),
    "name" : "Max",
    "age" : 28,
    "salary" : 3000
}
{
    "_id" : ObjectId("6225a7b8d06fdc0abe145635"),
    "name" : "Manu",
    "age" : 25,
    "salary" : 4000
}

我有这个集合的三个索引:

  1. 默认_idindex
  2. 独立 name_1 索引
  3. age_1_name_1
  4. 的复合索引

当我执行像 db.customers.explain().find({name: "Max", age: 28}) 这样的查询时,我期望 winningPlan 是复合索引,而获胜计划是独立的 name_1 索引,rejectedPlan 是复合索引。

谁能帮我理解为什么会这样?

您的复合索引需要 name_1_age_1 才能被查询使用...