MongoDB的基础查询和索引操作方法总结
2017-08-03 20:02
405 查看
MongoDB使用JavaScript作为shell脚本,可以代替关系型数据库中的SQL语句完成查询操作,包括索引下的查询操作,这里我们就来整理MongoDB的基础查询和索引操作方法总结:
查询操作
http://www.jb51.net/article/87983.htm
1、查询所有记录
?
相当于:
?
2、查询去掉后的当前聚集集合中的某列的重复数据
?
会过滤掉name中的相同数据
相当于:
?
3、查询age = 22的记录
?
相当于:
?
4、查询age > 22的记录
?
相当于:
?
5、查询age < 22的记录
?
相当于:
?
6、查询age >= 25的记录
?
相当于:
?
7、查询age <= 25的记录
?
相当于:
?
8、查询age >= 23 并且 age <= 26
?
相当于:
?
9、查询name中包含 mongo的数据
?
相当于:
?
10、查询name中以mongo开头的
?
相当于:
?
11、查询指定列name、age数据
?
相当于:
?
当然name也可以用true或false,当用ture的情况下河name:1效果一样,如果用false就是排除name,显示name以外的列信息。
12、查询指定列name、age数据, age > 25
?
相当于:
?
13、按照年龄排序
升序:
?
降序:
?
14、查询前5条数据
?
相当于:
?
15、查询10条以后的数据
?
相当于:
16、查询在5-10之间的数据
?
可用于分页,limit是pageSize,skip是第几页*pageSize
17、or与 查询
?
相当于:
?
18、查询第一条数据
?
相当于:
?
19、查询某个结果集的记录条数
?
索引
1、创建索引
?
在MongoDB中,我们同样可以创建复合索引,如下:
?
该索引被创建后,基于username和age的查询将会用到该索引,或者是基于username的查询也会用到该索引,但是只是基于age的查询将不会用到该复合索引。因此可以说,如果想用到复合索引,必须在查询条件中包含复合索引中的前N个索引列。然而如果查询条件中的键值顺序和复合索引中的创建顺序不一致的话,MongoDB可以智能的帮助我们调整该顺序,以便使复合索引可以为查询所用。如:
?
对于上面示例中的查询条件,MongoDB在检索之前将会动态的调整查询条件文档的顺序,以使该查询可以用到刚刚创建的复合索引。
2、创建唯一索引
在缺省情况下创建的索引均不是唯一索引。下面的示例将创建唯一索引,如:
?
如果再次插入userid重复的文档时,MongoDB将报错,以提示插入重复键,如:
?
?
如果插入的文档中不包含userid键,那么该文档中该键的值为null,如果多次插入类似的文档,MongoDB将会报出同样的错误,如:
?
?
如果在创建唯一索引时已经存在了重复项,我们可以通过下面的命令帮助我们在创建唯一索引时消除重复文档,仅保留发现的第一个文档,如:
--先删除刚刚创建的唯一索引。
?
--插入测试数据,以保证集合中有重复键存在。
?
--创建唯一索引,并消除重复数据。
?
--查询结果确认,重复的键确实在创建索引时已经被删除。
?
我们同样可以创建复合唯一索引,即保证复合键值唯一即可。如:
?
3、查询当前聚集集合所有索引
?
4、查看总索引记录大小
?
5、读取当前集合的所有index信息
?
6、删除指定索引
?
7、删除所有索引索引
?
查询操作
http://www.jb51.net/article/87983.htm
1、查询所有记录
?
?
?
相当于:
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
12、查询指定列name、age数据, age > 25
?
?
升序:
?
?
?
?
?
select * from userInfo where id not in (select id from (select * from userInfo) where and rownum < 11);
16、查询在5-10之间的数据
?
17、or与 查询
?
?
?
?
?
1、创建索引
?
?
?
2、创建唯一索引
在缺省情况下创建的索引均不是唯一索引。下面的示例将创建唯一索引,如:
?
?
?
--先删除刚刚创建的唯一索引。
?
?
?
?
?
?
?
?
?
?
相关文章推荐
- MongoDB的基础查询和索引操作方法总结
- MongoDB的基础查询和索引操作方法总结
- java mongodb 基础系列---查询,排序,limit,$in,$or,输出为list,创建索引,$ne 非操作
- mongodb基础系列——数据库查询数据返回前台JSP(二)
- mongodb查询语句及mongoose操作数据库总结
- MongoDB基础教程系列--第六篇 MongoDB 索引
- mongodb 索引创建,查询,删除操作
- MySQL数据库优化总结如果索引多个字段,第一个字段要是经常作为查询条件的。如果只有第二个字段作为查询条件,这个索引不会起到作用;
- mongodb基础-索引
- Mongodb基础条件查询
- MongoDB与PHP的扩展进行添加、修改、查询、删除等操作基础教程
- mongoDB高级查询与索引
- 「mysql优化专题」单表查询优化的一些小总结,非索引设计(3)
- Mongodb 笔记03 查询、索引
- mongoDB索引相关命令总结
- MongoDB 创建地图索引及根据位置坐标查询地点小例子
- node.js零基础详细教程(7):node.js操作mongodb,及操作方法的封装
- Solr(搜索引擎服务)和MongoDB通过mongodb-connector进行数据同步的解决方案,以及遇到的各种坑的总结(针对solr-5.3.x版本),mongodb和solr实现实时增量索引
- 【数据库】关于数据库查询性能调优和索引优化的总结
- MongoDB索引文件破坏后导致查询错误的问题