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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值