MongoDB单字段索引的创建(附带实例)
MongoDB 数据库单字段索引用于存储集合中单字段的信息。在默认情况下,所有集合都在 _id 字段上有一个索引,同时还可以添加其他索引以加快执行重要的查询和操作。
设计人员可以对文档中的任意字段创建单字段索引,具体内容如下:
在创建索引时,需要指定以下内容:
想要创建单字段索引,请使用 db.collection.createIndex() 方法:
在下面的应用示例中,创建了一个 students 集合,其中包含以下文档:
然后,可以尝试在单个字段上创建索引。考虑一位经常通过 gpa 查找学生的学校管理员,设计人员可以在 gpa 字段上创建索引,以提高这些查询的性能,具体代码如下:
该索引支持选择字段 gpa 的查询,具体示例如下:
另外,还可以尝试对嵌入字段创建索引。设计人员可以对嵌入式文档中的字段创建索引,嵌入式字段上的索引可以完成使用点表示法的查询。location 字段是嵌入式文档,其中包含嵌入式字段 city 和 state。
在 location.state 字段上创建索引,具体代码如下:
	
	
设计人员可以对文档中的任意字段创建单字段索引,具体内容如下:
- 顶级文档字段;
 - 嵌入式文档;
 - 嵌入式文档中的字段。
 
在创建索引时,需要指定以下内容:
- 要在其上创建索引的字段;
 - 带有索引的值的排序顺序(升序或降序)。例如,1 的排序顺序是按升序对值进行排序,-1 的排序顺序按降序对值进行排序。
 
想要创建单字段索引,请使用 db.collection.createIndex() 方法:
db.<collection>.createIndex( { <field>: <sortOrder> } )
对于单字段索引,索引键的排序顺序(即升序或降序)并不重要,因为 MongoDB 可以支持沿任意一个方向遍历索引。在下面的应用示例中,创建了一个 students 集合,其中包含以下文档:
db.students.insertMany([
  {
    name: "king",
    gpa: 3.8,
    location: { city: "xc", state: "PEK" }
  },
  {
    name: "tina",
    gpa: 3.6,
    location: { city: "PD", state: "SH" }
  }
])
然后,可以尝试在单个字段上创建索引。考虑一位经常通过 gpa 查找学生的学校管理员,设计人员可以在 gpa 字段上创建索引,以提高这些查询的性能,具体代码如下:
db.students.createIndex( { gpa: 1 } )
该索引支持选择字段 gpa 的查询,具体示例如下:
db.students.find( { gpa: 3.8 } )
db.students.find( { gpa: { $lt: 3.7 } } )
另外,还可以尝试对嵌入字段创建索引。设计人员可以对嵌入式文档中的字段创建索引,嵌入式字段上的索引可以完成使用点表示法的查询。location 字段是嵌入式文档,其中包含嵌入式字段 city 和 state。
在 location.state 字段上创建索引,具体代码如下:
db.students.createIndex( { "location.state": 1 } )
该索引支持对字段 location.state 进行查询,具体示例如下:
db.students.find( { "location.state": "PEK" } )
db.students.find( { "location.city": "PD", "location.state": "SH" } )
 ICP备案:
 公安联网备案: