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" } )