Mongodb的索引
程序员文章站
2022-05-21 08:03:04
...
1. 简介 索引是为了加速查询。如果没有索引,mongodb在查询时会做表扫描,如果集合很大时,这个查询会非常慢。一般对创建查询时的键都建立索引。 为排序字段建立索引,如果对未建立索引的字段sort,mongodb会将所有的数据取到内存中来排序,如果集合大到不能
1. 简介
索引是为了加速查询。如果没有索引,mongodb在查询时会做表扫描,如果集合很大时,这个查询会非常慢。一般对创建查询时的键都建立索引。为排序字段建立索引,如果对未建立索引的字段sort,mongodb会将所有的数据取到内存中来排序,如果集合大到不能在内存中排序,则mongodb会报错。
2. mongodb创建索引
创建索引使用ensureIndex命令。> db.people.ensureIndex({"username" : 1});上面语句对people集合的username键做了索引。
3. 组合索引
对于组合查询或排序,建立组合索引。> db.people.ensureIndex({"date" : -1, "username" : 1});索引键的1或者-1,表示索引创建的顺序,1为升序, -1为倒序。如果索引只有一个键,则方向无关紧要。
4. 内嵌文档建立索引
为blog集合的评论按照时间建立索引:> db.blog.ensureIndex({"comments.date" : 1});
5. 唯一索引
唯一索引确保集合中的每个键都是唯一值。> db.people.ensureIndex({"username" : 1}, {"uniqe" : true});对已有的集合创建唯一索引时,有可能已经有重复值了,这样会创建索引失败。 dropDups会保留第一个文档,删除后面重复的值。
> db.people.ensureIndex({"username" : 1}, {"unique" : true, "dropDups" : true});
6. 查看建立的索引
索引放在system.indexes集合中。> db.system.indexes.find();可以查看索引的key, 名称,属于哪个集合。
7. 删除索引
通过索引的名称,使用dropIndexes可以删除索引。索引名称通过system.indexes来查询。> db.user.dropIndexes({"username_1" : 1});地址:http://blog.csdn.net/yonggang7/article/details/28100855
推荐阅读
-
editplus查找替换的正则表达式应用(推荐)
-
steam商店错误代码118怎么办?steam错误代码118的解决方法介绍
-
怎么让网页自动翻译? 在IE浏览器中实现网页自动翻译的方法
-
MySQL图形工具 MySQL GUI Tools的安装使用方法
-
PowerDesigner 建立与SQLSERVER 2005数据库的连接以便生成数据库和从数据库生成到PD中
-
VS2012中通过IIS发布站点的步骤分享
-
彻底完全卸载 SQL Server 2005 的图文教程
-
迅雷下载BT差不多下载完的时候会提示有少量文件未下载
-
使用Navicat for Oracle工具连接oracle的图文教程
-
Windows7旗舰版32位Oracle10g的安装和卸载教程