【问题标题】:If I have both simple and compound index on a field, which one gets used in queries containing that field?如果我在一个字段上同时具有简单索引和复合索引,那么在包含该字段的查询中使用哪一个?
【发布时间】:2021-12-29 02:08:07
【问题描述】:

我的 mongo 文档中有一个字段“productLowerCase”。我创建了 2 个索引

1. simple
   {"productLowerCase" : 1}
2. compound
   {"productLowerCase" : 1, "timestamp.milliseconds" : -1}

所以如果我运行一个只有 productLowerCase 的查询,说:

db.coll.find({"productLowerCase" : {$regex : /^cap/}})

将使用哪个索引?

【问题讨论】:

    标签: mongodb mongoose indexing mongodb-query mongodb-indexes


    【解决方案1】:

    在这种情况下,mongo 将使用{"productLowerCase" : 1} 这个索引,但是你可以删除这个索引,因为如果你有复合索引,你可以使用第一个字段进行搜索而不会损失性能。

    除此之外,您还可以使用explain() 来解释您的查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-18
      • 1970-01-01
      相关资源
      最近更新 更多