【MongoDB】索引技术总结
2016-05-17 19:42
483 查看
MongoDB的索引被用于查询(find、findOne)和排序。如果倾向于在集合中大量使用排序,那么应该根据排序的需求添加索引。
一、显示索引
MongoDB提供了一个简单的辅助函数getIndexes(),可以显示指定集合中的索引。
MongoDB在每个数据库中都维护了一个特有的集合,名为system.indexes。该集合将记录在数据库中的所有集合上创建的全部索引。
当在某个元素上定义索引时,MongoDB将构造一个内部的二叉树索引,并用它高效地定位文档,如果未找到合适的索引,MongoDB将扫描集合中的所有文档,搜索满足查询的记录。
二、创建简单的索引
MongoDB提供了ensureIndex()函数,用于向集合中添加新的索引。该函数首先将检查在目前的集合中是否已经创建了该索引。如果是,那么ensureIndex()只是返回该索引。
如果指定的文档字段是数组类型,那么该索引将数组中的所有元素作为不同的索引条目添加到其中。这被称为多键索引,每个文档都将被链接到索引中的多个值。
三、指定索引选项
使用{background:true}在后台创建索引
使用{unique:true}创建唯一键索引
使用{dropdups:true}自动去重
使用{sparse:true}创建稀疏索引
目前,每个集合中最多可以拥有64个索引。
一、显示索引
MongoDB提供了一个简单的辅助函数getIndexes(),可以显示指定集合中的索引。
MongoDB在每个数据库中都维护了一个特有的集合,名为system.indexes。该集合将记录在数据库中的所有集合上创建的全部索引。
当在某个元素上定义索引时,MongoDB将构造一个内部的二叉树索引,并用它高效地定位文档,如果未找到合适的索引,MongoDB将扫描集合中的所有文档,搜索满足查询的记录。
二、创建简单的索引
MongoDB提供了ensureIndex()函数,用于向集合中添加新的索引。该函数首先将检查在目前的集合中是否已经创建了该索引。如果是,那么ensureIndex()只是返回该索引。
如果指定的文档字段是数组类型,那么该索引将数组中的所有元素作为不同的索引条目添加到其中。这被称为多键索引,每个文档都将被链接到索引中的多个值。
三、指定索引选项
使用{background:true}在后台创建索引
使用{unique:true}创建唯一键索引
使用{dropdups:true}自动去重
使用{sparse:true}创建稀疏索引
相关文章推荐
- NodeJS中MongoDB驱动mongodb使用简介
- c#-mongodb连接出错:MongoDB.Driver.MongoAuthenticationException: Invalid credentials for database...
- MongoDB的界面操作工具之rockmongo
- CentOS7 MongoDB 3.2.6环境配置
- 阿里云mongodb分析报告
- MongoDB的安装
- Linux服务器开发环境搭建 Nginx+PHP+MongoDB
- SiteWhere如何连接MongoDB
- mongodb主从配置
- Centos6.X 安装MongoDb
- python操作MongoDB数据库
- MongoDB添加到WINDOWS服务自动启动
- 看门外汉如何实现:C#操作 MongoDB基本CURD的事务控制之 第二部分
- spring boot整合Morphia对MongoDB进行操作
- TokuMX - 拥有一身MongoDB的外表和一颗TokuDB的心
- MongoDB MapReduce 性能提升20倍的优化宝典
- nodejs实践-MongoDB
- Linux-CentOS下mongodb安装和启动配置
- MongDB使用手册-MongoDB Shell
- MongoDB与MySQL命令对比