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. .NET 4.0中的泛型的协变和逆变

    转自:http://www.cnblogs.com/jingzhongliumei/archive/2012/07/02/2573149.html 先做点准备工作,定义两个类:Animal类和其子类D ...

  2. DFS HDOJ 2614 Beat

    题目传送门 /* 题意:处理完i问题后去处理j问题,要满足a[i][j] <= a[j][k],问最多能有多少问题可以解决 DFS简单题:以每次处理的问题作为过程(即行数),最多能解决n个问题, ...

  3. iOS @try

    try{ //1:抛出异常的代码 //2:代码 }catch(){ //3:代码 //4:抛出异常 }finally{ //5:代码 } //6:代码要明确的一点是:不管try是否抛出异常,final ...

  4. bzoj1019 [SHOI2008]汉诺塔

    1019: [SHOI2008]汉诺塔 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 1030  Solved: 638[Submit][Status] ...

  5. silverlight 跨域访问 wcf

    先介绍一下我的测试项目,我用flash和silverlight一同来调用一个webservice,一个flash客户端,一个silverlight客户端,一个web项目来host flash和silv ...

  6. 1^b+2^b+3^b+...+n^b数列

    首先,这是我自己推出来的,O(n^2),常数巨大.所以无能为力优化!所以求此数列的公式!求优化!!! 主要思想:要算b次的,那么就要先算b+1次的. 首先,我用F(i, j)表示杨辉三角第i层第j个, ...

  7. 对于String对象,可以使用"="赋值,也可以使用"new"关键字赋值,两种方式有什么区别?

    当你看见这个标题的时候,你可能会下意识的去想一下,这两种方式到底有什么样的区别呢? 且看下面的demo,自然便区分开了 /** * */ package com.b510.test; /** * Pr ...

  8. shell函数

    1. 定义 : func() { } 或 function func() { } 2.参数 func 1 2 3 4 可在函数中直接调$1来使用,>=10的用${n}

  9. smarty模板中literal标签的使用

    在使用的时候把js等代码写在模板中就报错,加入literal标签后就正确了 <style> {literal} .tr_color{background-color: #9F88FF} { ...

  10. Cdn加速

    http://www.bootcdn.cn/ http://cdn.code.baidu.com/ backbone <script src="https://cdn.bootcss. ...