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. COGS731 [网络流24题] 最长递增子序列(最大流)

    给定正整数序列x1,..., xn (n<=500).(1)计算其最长递增子序列的长度s.(2)计算从给定的序列中最多可取出多少个长度为s的递增子序列.(3)如果允许在取出的序列中多次使用x1和 ...

  2. BZOJ3830 : [Poi2014]Freight

    首先为了保证发车时间都不同,T[i]=max(T[i],T[i-1]+1) 然后设f[i]表示前i列车回来的最早时刻 f[i]=min(max(T[i],f[j]+i-j-1)+s*2+i-j-1) ...

  3. BZOJ3787 : Gty的文艺妹子序列

    将序列分成$\sqrt{n}$块,预处理出每两块之间的逆序对数,以及ap[i]表示前i块内数字出现次数的树状数组 预处理:$O(n\sqrt{n}\log n)$ 修改时,ap[i]可以在$O(\sq ...

  4. Winform窗体事件发生顺序

    Form 和Control 类公开了一组与应用程序启动和关闭相关联的事件.当Windows 窗体应用程序启动时,主窗体的启动事件按以下顺序引发: System.Windows.Forms.Contro ...

  5. getattr的作用是什么呢

    在python的官方文档中:getattr()的解释如下:getattr(object, name[, default]) Return the value of the named attribut ...

  6. UAPStudio授权过期的解决方法,重新授权

    1.启动lisence服务器,生成硬件锁, 并导入授权. 需要注意的地方:1.点击工具栏“帮助”下的“UAP-STUDIO”授权管理. 2.删除“D:\UAP-STUDIO\Platform\bin” ...

  7. 用ultraISO 制作一个MSdos启动软盘镜像

    见过软盘,但是没用过,在虚拟机里试试. 磁带,软盘,光盘,硬盘…… 储存介质一代代更新,看到的img.iso文件都是叫做镜像文件(image file ).image 即图片照片,所谓的image f ...

  8. Apache Spark技术实战之1 -- KafkaWordCount

    欢迎转载,转载请注明出处,徽沪一郎. 概要 Spark应用开发实践性非常强,很多时候可能都会将时间花费在环境的搭建和运行上,如果有一个比较好的指导将会大大的缩短应用开发流程.Spark Streami ...

  9. OpenFlow.p4 源码

    /* Copyright 2013-present Barefoot Networks, Inc. Licensed under the Apache License, Version 2.0 (th ...

  10. Unix时间戳(Unix timestamp)转换工具

    http://tool.chinaz.com/Tools/unixtime.aspx 现在的Unix时间戳(Unix timestamp)是   1440732364         Unix时间戳( ...