如何执行此索引查询



想象一下,你有一个古董店的商品信息集。每份文件都有以下结构:

{
"id": 100,
"category": "furniture",
"price":1000,
"quantity": 10
}

你已经创建了这个索引:

db.goods.createIndex({price: 1, quantity: 1})

并执行了以下请求:

db.goods.find({quantity: {$gte: 2}, price: {$lt: 1000}}, {quantity: 1, id: 0})

以下查询将如何执行?

以下是选项:

  1. 将不使用索引,所有结果将直接从数据库中检索。

  2. 将使用索引,之后将从数据库中检索结果。

  3. 所需的结果将仅从索引中检索。

  4. 将使用索引,之后将从缓存中检索结果。

不会使用索引

复合索引中列出的字段的顺序很重要。索引将包含对文档的引用,这些文档首先按项目字段的值排序,在项目字段的每个值中,按库存字段的值排列。有关详细信息,请参见排序顺序。

除了支持在所有索引字段上匹配的查询外,复合索引还可以支持在索引字段前缀上匹配的搜索。也就是说,该索引支持对价格字段以及价格和数量字段的查询

参考

相关内容

  • 没有找到相关文章