0.查询符合条件数据的总条数 如:db.list名.find({条件}).count();

1.返回指定的键值:db.list.find({条件},{name:"任意值",age:任意值}); 结果就只会把 _id name age 三类键值返回,若不想要_id则需将_id:0显式的写到第二个键值集合中; 

2.指定键的值的范围返回指定的键值:db.list.find({age:{$gte:4,$lte:25}},{name:"任意值",age:任意值,_id:0}); 过滤出年龄>=4且<=小于25的键值且只包含name age;

3.刨除指定键的某个值返回指定的键值:db.list.find({age:{$ne:14},{name:"1",age:2,_id:0}); 过滤掉年龄为14的那条记录且键值且只包含name age;

=======================================$in和$nin的过滤条件只能是数组==========================================

4.包含指定键的某些值返回指定的键值:db.list.find({age:{$in:[14,16], name:"a"},{name:"1",age:2,_id:0}); 结果仅剩name是a且年龄为14或16的记录且键值且只包含name age;

5.与4相反:db.list.find({age:{$nin:[14,16]},{name:"1",age:2,_id:0}); 结果过滤掉年龄为14和16的那些条记录且键值且只包含name age;

6.找出age大于16或者name为a或b的记录:db.list.find({$or:[{age:{$gte:16}},{name:{$in:["a","b"]}}],{name:"1",age:2,_id:0}); 

7.正则匹配name打字母为1的记录:db.list.find({name:"/a/b/n/",{name:"1",age:2,_id:0}); 结果仅仅保留name开头字母为a,b,c的记录且键值且只包含name age;

8.$not操作为原条件取反;

=======================================键所对应的值为数组类型的查询==========================================

9.查询list中一条数据的键所对应的值为数组类型时使用:db.list名.find({likes:{$all:["篮球","足球","排球"]}},{name:"1",age:2,_id:0});就可以匹配查询;

10.键所对应的值为数组类型时使用该数组的具体索引位置进行查询  如:db.list名.find({"likes.1":"篮球"});会过滤出likes索引为1的位置为"篮球"的记录且"likes.2"引号必写;

11.根据前两条内容,查询出likes数组的元素个数是3的数据使用$size进行匹配 如:db.list名.find({likes:{$size:3}}); 即可;

12.根据9,10条内容查询出likes数组的元素索引为1到2进行匹配 如:db.list名.find({name:"xxx"},{likes:{$slice:[1,3]},_id:0}); 结果likes只展示likes2~3的值;

13.源于上条操作,如果只想展示likes数组中的最后一个元素则直接将$slice:-1即可;

=======================================键所对应的值为数组对象的查询==========================================

14.键所对应的值为数组类型且数组中仍是对象 则使用:db.list名.find(likes:{$elemMatch:{"likes1":"1","likes1":"2"}});它会匹配出"likes1":"1"并且"likes1":"2"的结果;

=============================================分页查询=============================================

15.分页查询 如:db.list名.find({age:{$gt:30}},{_id:0,name:1}).limit(5).sort({age:1});这样就找到了符合条件的前5条数据并升序排列,并且仅展示name键值;

16.分页查询 如:db.list名.find({age:{$gt:30}},{_id:0,name:1}).limit(5).skip(6).sort({age:-1});这样就找到了符合条件的7~12条数据并降序排列,并且仅展示name键值;

17.当数据量较大的时候skip有性能问题,处理办法就是使用日期记录上次查询出最后一条记录的时间,然后使用limit(..)找到大于该时间的几条即可;

  

MongoDB的find用法的更多相关文章

  1. MongoDB高级查询用法大全

    转载 http://blog.163.com/lgh_2002/blog/static/440175262012052116455/ 详见官方的手册: http://www.mongodb.org/d ...

  2. mongodb聚合管道用法

    基本用法 db.collection.aggregate( [ { <stage> }, ... ] ) stage如下 名称 描述 $addFields 将新的字段添加到文档中,输出的文 ...

  3. mongoDB 特别指令用法

    http://apluck.iteye.com/blog/1176160 a.   修改collection集合字段名 参见:http://www.mongodb.org/display/DOCS/U ...

  4. mongoDB 索引的用法

    http://www.cnblogs.com/lipan/archive/2011/03/28/1997202.html MongoDB中的索引其实类似于关系型数据库,都是为了提高查询和排序的效率的, ...

  5. mongoDB的基本用法

    一.MongoDB初识 什么是MongoDB MongoDB是一个基于分布式文件存储的数据库.由c++语言编写.旨在为web应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库 ...

  6. mongodb 查询的用法

    想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动.C#版的驱动貌似有很多种,如官方提供的samus. 实现思路大都类似.这里我们用官方提供的mongo-csharp-dri ...

  7. MongoDB数据库基本用法

    show dbs:显示数据库列表  show collections:显示当前数据库中的集合(类似关系数据库中的表)  show users:显示用户 use <db name>:切换当前 ...

  8. Mongodb查询的用法,备注防止忘记

    最近在用这个东西,为防止忘记,记下来. 集合简单查询方法 mongodb语法:db.collection.find()  //collection就是集合的名称,这个可以自己进行创建. 对比sql语句 ...

  9. MongoDB的一些用法(转藏)

    MongoDB是目前工作中经常使用到的NoSQL数据库. 本博客只记录相关理论知识和技巧,涉及到实践的部分都会单开Blog来记录实践过程. ------------------------------ ...

  10. MongoDB的MapReduce用法及php示例代码

    MongoDB虽然不像我们常用的mysql,sqlserver,oracle等关系型数据库有group by函数那样方便分组,但是MongoDB要实现分组也有3个办法: * Mongodb三种分组方式 ...

随机推荐

  1. 贪心/字符串处理 Codeforces Round #291 (Div. 2) A. Chewbaсca and Number

    题目传送门 /* WA了好几次,除了第一次不知道string不用'\0'外 都是欠考虑造成的 */ #include <cstdio> #include <cmath> #in ...

  2. POJ3189 Steady Cow Assignment(最大流)

    题目大概说,有n头牛和b块草地,每头牛心中分别对每块草地都有排名,草地在牛中排名越高牛安排在那的幸福度就越小(...),每块草地都能容纳一定数量的牛.现在要给这n头牛分配草地,牛中的幸福度最大与幸福度 ...

  3. Sql 字符串替换

    (1) 字符串替换 Update SongADD_EMH0055 SET songno = REPLACE(songno, '231', '233') where songno like '%1022 ...

  4. Rain on your Parade

    Rain on your Parade Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 655350/165535 K (Java/Ot ...

  5. Robotium查找指定控件

    一.通过ID查找控件 Activity act=solo.getCurrentActivity(): int id=act.getResources().getIdentifier("id名 ...

  6. Highcharts 本地导出图片 Java

    下载的Highcharts-2.3.5.zip 解压后 有 E:\Highcharts\Highcharts-2.3.5\exporting-server\java 目录 提供了Java实现的导出应用 ...

  7. lvs原理和实战

     lvs-dr原理 lvs-nat原理:  当我们的网站流量越来越大时一台web服务器已经无法满足需求了,我们该如何解决呢??把服务器连接起来实现负载均衡或许是个不错的办法..下面我就来看看怎么实现吧 ...

  8. Struts2 实战(一)

    环境: Ubuntu 14.04 LTS 64位 开发工具的准备 我选择 Eclipse, 而没有选择MyEclipse, 一是因为免费,不想去弄破解,二是不想太傻瓜化的东西(注:本人并没有用过MyE ...

  9. keepalived +mysql 实战

    keepalived高可用可以用在很多应用上,比如keepalived+反向代理著名的nginx.keepalived+数据库主从.keepalived+文件分布等等... 安装keepalived  ...

  10. SQL Server访问MySql

    使用环境:操作系统:window7数据库:SQL Server2005.MySql5.01.在安装了SQL Server的服务器上安装MySql的ODBC驱动:下载链接:http://dev.mysq ...