建议大家使用FireFox、Opera、Safri、IE8+等主流浏览器访问本站,否则可能会出现不兼容等问题!

mongo 文档 索引篇

mongo 凶恶的方块 848次浏览 已收录 2个评论

前言:

复合索引原理我要等看mongo指南,手册上看不太懂。

正文:

默认_id存在索引,内嵌域和内嵌文档皆可以创建索引。创建索引时,数据库读写操作会被阻塞,使用background选项后台创建索引,但shell实例会被阻塞。2.4以后可以并发进行后台索引创建。

复合索引:单项索引支持从2个方向读取索引,而复合索引索引方向决定了是否使用该索引。

db.events.createIndex( { "username" : 1, "date" : -1 } )//此索引将同时支持以下两种查询
db.events.find().sort( { username: 1, date: -1 } )//优先username升序其次date降序
db.events.find().sort( { username: -1, date: 1 } )
//但不支持这一种
db.events.find().sort( { username: 1, date: 1 } )

索引前缀:

mongo支持索引前缀,如此索引

{ "item": 1, "location": 1, "stock": 1 }

那么,以下索引将会被支持 包含item键,包含item键location,包含item键stock,同时包含此3者。

当单一键索引和compound索引同时存在时,若不使稀疏(sparse)或者唯一索引,单一索引可以直接省略。

复合多键索引:

仅支支持1数组,能够提供数组字段高效查询索引。如果基于数组创建那么mongo会自动创建多键索引。

文本索引:

一个集合只能存在一个文本索引,默认语言为英语。可设置关键字权重等。。。(全文关键字匹配功能)

2D索引: 暂不涉及

TTL索引

db.log_events.createIndex( { "createdAt": 1 }, { expireAfterSeconds: 3600 } )

索引策略: 复合索引支持以相等的匹配前缀来排序。不需要在内存中进行排序

 


方块网络 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明mongo 文档 索引篇
喜欢 (0)or分享 (0)
avatar
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. avatar
    哇,更新了博客,说起来是学习笔记吧...
    神隐者2017-05-03 12:51 回复 Windows 7 | Chrome 58.0.3029.81