聚集集合查询

1、查询所有记录

  1. db.userInfo.find();
  2. 相当于:select* from userInfo;
  3. 默认每页显示20条记录,当显示不下的情况下,可以用it迭代命令查询下一页数据。注意:键入it命令不能带“;”
  4. 但是你可以设置每页显示数据的大小,用DBQuery.shellBatchSize= 50;这样每页就显示50条记录了。

2、查询去掉后的当前聚集集合中的某列的重复数据

  1. db.userInfo.distinct("name");
  2. 会过滤掉name中的相同数据
  3. 相当于:select distict name from userInfo;

3、查询age = 22的记录

  1. db.userInfo.find({"age": 22});
  2. 相当于: select * from userInfo where age = 22;

4、查询age > 22的记录

  1. db.userInfo.find({age: {$gt: 22}});
  2. 相当于:select * from userInfo where age >22;

5、查询age < 22的记录

  1. db.userInfo.find({age: {$lt: 22}});
  2. 相当于:select * from userInfo where age <22;

6、查询age >= 25的记录

  1. db.userInfo.find({age: {$gte: 25}});
  2. 相当于:select * from userInfo where age >= 25;

7、查询age <= 25的记录

  1. db.userInfo.find({age: {$lte: 25}});

8、查询age >= 23 并且 age <= 26

  1. db.userInfo.find({age: {$gte: 23, $lte: 26}});

9、查询name中包含 mongo的数据

  1. db.userInfo.find({name: /mongo/});
  2. //相当于%%
  3. [code]select * from userInfo where name like ‘%mongo%';

10、查询name中以mongo开头的

  1. db.userInfo.find({name: /^mongo/});
  2. select * from userInfo where name like mongo%';

11、查询指定列name、age数据

  1. db.userInfo.find({}, {name: 1, age: 1});
  2. 相当于:select name, age from userInfo;
  3. 当然name也可以用truefalse,当用ture的情况下河name:1效果一样,如果用false就是排除name,显示name以外的列信息。

12、查询指定列name、age数据, age > 25

  1. db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1});
  2. 相当于:select name, age from userInfo where age >25;

13、按照年龄排序

  1. 升序:db.userInfo.find().sort({age: 1});
  2. 降序:db.userInfo.find().sort({age: -1});

14、查询name = zhangsan, age = 22的数据

  1. db.userInfo.find({name: 'zhangsan', age: 22});
  2. 相当于:select * from userInfo where name = zhangsan' and age = ‘22';

15、查询前5条数据

  1. db.userInfo.find().limit(5);
  2. 相当于:selecttop 5 * from userInfo;

16、查询10条以后的数据

  1. db.userInfo.find().skip(10);
  2. 相当于:select * from userInfo where id not in (
  3. selecttop 10 * from userInfo
  4. );

17、查询在5-10之间的数据

  1. db.userInfo.find().limit(10).skip(5);
  2. 可用于分页,limitpageSizeskip是第几页*pageSize

18、or与 查询

  1. db.userInfo.find({$or: [{age: 22}, {age: 25}]});
  2. 相当于:select * from userInfo where age = 22 or age = 25;

19、查询第一条数据

  1. db.userInfo.findOne();
  2. 相当于:selecttop 1 * from userInfo;
  3. db.userInfo.find().limit(1);

20、查询某个结果集的记录条数

  1. db.userInfo.find({age: {$gte: 25}}).count();
  2. 相当于:select count(*) from userInfo where age >= 20;

21、按照某列进行排序

  1. db.userInfo.find({sex: {$exists: true}}).count();
  2. 相当于:select count(sex) from userInfo;

21、find 游标查询

  1. >var cursor = db.users.find();
  2. > while (cursor.hasNext()) {
  3. printjson(cursor.next());
  4. }
  5. 这样就查询所有的users信息,同样可以这样写
  6. var cursor = db.users.find();
  7. while (cursor.hasNext()) { printjson(cursor.next); }
  8. 同样可以省略{}号

22、查询修改删除

  1. db.users.findAndModify({
  2. query: {age: {$gte: 25}},
  3. sort: {age: -1},
  4. update: {$set: {name: 'a2'}, $inc: {age: 2}},
  5. remove: true
  6. });
  7. db.runCommand({ findandmodify : "users",
  8. query: {age: {$gte: 25}},
  9. sort: {age: -1},
  10. update: {$set: {name: 'a2'}, $inc: {age: 2}},
  11. remove: true
  12. });
  13. update remove 其中一个是必须的参数; 其他参数可选。
  14. 参数 详解 默认值
  15. query 查询过滤条件 {}
  16. sort 如果多个文档符合查询过滤条件,将以该参数指定的排列方式选择出排在首位的对象,该对象将被操作 {}
  17. remove 若为true,被选中对象将在返回前被删除 N/A
  18. update 一个 修改器对象
  19. N/A
  20. new 若为true,将返回修改后的对象而不是原始对象。在删除操作中,该参数被忽略。 false
  21. fields 参见Retrieving a Subset of Fields (1.5.0+)
  22. All fields
  23. upsert 创建新对象若查询结果为空。 示例 (1.5.4+)
  24. false

mongodb--find基础用法的更多相关文章

  1. PropertyGrid控件由浅入深(二):基础用法

    目录 PropertyGrid控件由浅入深(一):文章大纲 PropertyGrid控件由浅入深(二):基础用法 控件的外观构成 控件的外观构成如下图所示: PropertyGrid控件包含以下几个要 ...

  2. logstash安装与基础用法

    若是搭建elk,建议先安装好elasticsearch 来自官网,版本为2.3 wget -c https://download.elastic.co/logstash/logstash/packag ...

  3. elasticsearch安装与基础用法

    来自官网,版本为2.3 注意elasticsearch依赖jdk,2.3依赖jdk7 下载rpm包并安装 wget -c https://download.elastic.co/elasticsear ...

  4. BigDecimal最基础用法

    BigDecimal最基础用法 用字符串生成的BigDecimal是不会丢精度的. 简单除法. public class DemoBigDecimal { public static void mai ...

  5. 一点MongoDB的基础及mongodb在mac上的安装

    最近发现维持写博客的习惯还是挺困难的,尤其对我来说,计划好的事过了好长时间才想到要去做. 这段时间一直在熟悉MongoDB,首先我是参考的这一篇:8天学通MongoDB   原博主写得非常好,我这里就 ...

  6. Vue组件基础用法

    前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...

  7. Smarty基础用法

    一.Smarty基础用法: 1.基础用法如下 include './smarty/Smarty.class.php';//引入smarty类 $smarty = new Smarty();//实例化s ...

  8. 前端自动化测试神器-Katalon的基础用法

    前言 最近由于在工作中需要通过Web端的功能进行一次大批量的操作,数据量大概在5000左右,如果手动处理, 完成一条数据的操作用时在20秒左右的话,大概需要4-5个人/天的工作量(假设一天8小时的工作 ...

  9. Bootstrap fileinput:文件上传插件的基础用法

    官网地址:http://plugins.krajee.com/ 官网提供的样例:http://plugins.krajee.com/file-input/demo 基础用法一 导入核心CSS及JS文件 ...

  10. asyncio 基础用法

    asyncio 基础用法 python也是在python 3.4中引入了协程的概念.也通过这次整理更加深刻理解这个模块的使用 asyncio 是干什么的? asyncio是Python 3.4版本引入 ...

随机推荐

  1. B2460 [BeiJing2011]元素 线性基

    这个题是对刚才线性基的一个补充,就是中间有一些小贪心,贪心就很有意思,先按权值排序,然后就瞎搞就行了. 题干: Description 相传,在远古时期,位于西方大陆的 Magic Land 上,人们 ...

  2. 协同过滤算法中皮尔逊相关系数的计算 C++

    template <class T1, class T2>double Pearson(std::vector<T1> &inst1, std::vector<T ...

  3. ks shell OpenStack 封装

  4. myeclipse视图布局恢复

    使用Windows 菜单下的 Reset Perspective

  5. jquery.validate验证text,checkbox,radio,selected

    index.cshtml <form id="formLogin" method="post"> <div> <label for ...

  6. .net中的WebForm引人MVC的控制器

    当下.net中比较火的模式MVC模式,说实话对于菜鸟的我还没有遇到一个比较健全的MVC模式的项目也是比较遗憾.偶然间在网上看到WebForm实现MVC中的模式(主要是控制器...)就学习了一波,下面是 ...

  7. Get 和 Post

    理论: Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而 ...

  8. C#快速获取指定网页源码的几种方式,并通过字符串截取函数 或 正则 取指定内容(IP)

    //只获取网页源码开始到标题位目的进行测试 //第一种方式经过测试,稍微快点 string url = "http://www.ip.cn"; HttpWebRequest req ...

  9. 极客学院免费VIP

    [手快福利]用我的链接注册极客学院,你我都能免费得30天VIP!6500+编程开发视频教程随便学,还能下载资料和源码 http://e.jikexueyuan.com/invite/index.htm ...

  10. 在 Laravel 应用中使用 pjax 进行页面加速

    说明# PHPHub 使用 pjax 来加速网页的加载, 这篇文章是在开发完此功能后做的笔记. 什么是 Pjax# .--. / \ ## a a ( '._) |'-- | _.\___/_ ___ ...