MongoDB单一字段索引

MongoDB给集合文档中的任意字段提供了完整的索引。默认情况下,所有的集合在_id字段拥有一个索引,应用和用户可以添加额外的索引来支持重要的查询和操作。

本文描述在单一字段上添加升序/降序索引

一、在单一字段上添加升序索引

考虑一个名字为records的集合,假设它有个文档的内容如下:

{ "_id": ObjectId("570c04a4ad233577f97dc459"), "score": 1034, "location": { state: "NY", city: "New York" } }

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

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

索引详情里面的字段值描述了在该字段上使用的索引类型。例如字段后面跟着的1表示该字段是升序索引,-1表示该字段使用降序索引。

创建的索引将会当查询score字段的时候使用到,例如:

db.records.find({score:2})

db.records.find{score:{$gt:10}})

二、在内嵌字段上创建索引

可以在内嵌的文档字段上创建索引,就像你在最外层文档字段上创建索引一样。可以使用逗号标记符来在内嵌文档字段上创建索引:

假设有个集合records有如下的文档内容:

{ "_id": ObjectId("570c04a4ad233577f97dc459"), "score": 1034, "location": { state: "NY", city: "New York" } }

则下面的操作将会在location.state上创建一个索引:

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

上面创建的索引可以在查询字段location.state的时候用到,例如:

db.records.find({"location.state":"CA"})

db.recodrd.find({"location.city":"albany","location.state":"NY"})

三、在内嵌文档上创建索引

也可以在整个内嵌文档上面创建索引

假如在集合records里面存在如下的文档内容:

{ "_id": ObjectId("570c04a4ad233577f97dc459"), "score": 1034, "location": { state: "NY", city: "New York" } }

location

字段是一个内嵌文档,包含内嵌的字段:city和state。下面的命令将会在location字段上面创建一个索引:

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

下面的查询将会使用到location字段索引:

db.records.find({location:{city:"New York",state:"NY"}})

注意:尽管该查询可以使用索引,但是结果集并不包含上述样例,当在内嵌文档上执行等值匹配的时候,将会严格匹配内嵌文档的字段顺序。

猜你喜欢

转载自blog.csdn.net/duzm200542901104/article/details/81631178
今日推荐