第九章 单个索引(Single Field Indexes)
- 创建升序索引
- 在嵌套字段创建索引
- 在嵌套文档创建索引
MongoDB的索引支持文档中的任何字段。所有集合都有一个默认的 _id
索引,用户对频繁查询可以添加一些索引。
创建升序索引
假设有以下这样一个集合。
{
"_id": ObjectId("570c04a4ad233577f97dc459"),
"score": 1034,
"location": {state: "NY", city: "New York"}
}
创建升序索引
db.records.createIndex({score: 1})
1指定索引顺序为 ASC
,-1指定索引顺序为 DESC
下面查询语句都会使用到索引
db.records.find({score: 2})
db.records.find({score: {$lt: 10}})
在嵌套字段上创建索引
在嵌套字段上创建索引非常简单,嵌套字段上的索引与嵌套文档上的索引有一点区别:嵌套文档上的索引包含整个嵌套文档的内容,而且文档内容不得超过索引上限值。创建语法如下所示。
db.records.createIndex({"location.state": 1})
下面查询语句都会使用到索引
db.records.find({"location.state": "CA"})
db.records.find({"location.city": "Albany", "location.city": "NY"})
在嵌套文档上创建索引
创建语法如下。
db.records.createIndex({location: 1})
下面查询语句都会使用到索引
db.records.find({location: {city: "New York", state: "NY"}})