MongoDB为文档集合中任何字段上的索引提供了完整的支持 。默认情况下,所有集合在_id字段上都有一个索引,应用程序和用户可以添加其他索引来支持重要的查询和操作。
本文档在单个字段上描述了升序/降序索引。
单字段索引 - 图1

在单个字段上创建升序索引

假设一个 records的集合,包含类似于如下所示的文档:

  1. {
  2. "_id": ObjectId("570c04a4ad233577f97dc459"),
  3. "score": 1034,
  4. "location": { state: "NY", city: "New York" }
  5. }

以下操作score 在records集合的字段上创建一个升序索引:

  1. db.records.createIndex( { score: 1 } )

在嵌入式字段上创建索引

您可以在嵌入式文档中的字段上创建索引,就像可以在文档中的顶级字段上建立索引一样。嵌入字段上的索引与嵌入文档上的索引不同,后者包含完整内容,直到索引中嵌入文档的最大值。相反,嵌入式字段上的索引使您可以使用“点符号”来对嵌入式文档进行内部检查。index size
考虑一个名为的集合records,其中包含类似于以下样本文档的文档:

  1. {
  2. "_id": ObjectId("570c04a4ad233577f97dc459"),
  3. "score": 1034,
  4. "location": { state: "NY", city: "New York" }
  5. }

以下操作将在location.state 字段上创建索引:

  1. db.records.createIndex( { "location.state": 1 } )

创建的索引将支持在字段上选择的查询 location.state,例如:

  1. db.records.find( { "location.state": "CA" } )
  2. db.records.find( { "location.city": "Albany", "location.state": "NY" } )