首页 > 编程笔记 > MongoDB 阅读:2

MongoDB单字段索引的创建(附带实例)

MongoDB 数据库单字段索引用于存储集合中单字段的信息。在默认情况下,所有集合都在 _id 字段上有一个索引,同时还可以添加其他索引以加快执行重要的查询和操作。

设计人员可以对文档中的任意字段创建单字段索引,具体内容如下:
在创建索引时,需要指定以下内容:
想要创建单字段索引,请使用 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" } )

相关文章