按条件查询

比较操作:$lt,$lte,$gt,$gte,$ne

db.user.find({"score":{$gt:}});

$or :包含多个条件,他们之间为or的关系 ,$nor相当于or取反

db.user.find({$or:[{"score":{$gt:}},{"user_id":"u3"}]});

$not:用作其他条件之上,取反

$mod:将查询的值除以第一个给定的值,如果余数等于等二个值则匹配成功

db.user.find({"score":{$mod:[,]}});

$in :查询一个键的多个值,只要键匹配其中一个即可 , $nin为不包含

db.user.find({"score":{$in:[,]}});

$all键需要匹配所有的值

db.user.find({"house":{$all:[]}});

$exists:检查某个键是否存在,1表示存在,0表示不存在

db.user.find({"name":{$exists:1}});

null类型:不仅能匹配键的值为null,还匹配键不存在的情况

db.user.find({"name":null});

查询数组

单个元素匹配,就跟前面写条件一样,{key:value}

 db.user.find({"house":});

多个元素匹配,使用$all, {key:{$all:[a,b]}},元素的顺序无所谓

db.user.find({"house":{$all:[,]}});

可以使用索引指定查询数组特定位置, {“key.索引号”:value}

 db.user.find({"house.1":});

查询某个长度的数组,使用$size

db.user.find({"house":{$size:}});

指定子集,使用$slice,正数是前面多少条,负数是尾部多少条,也可以指定偏移量和要返回的元素数量,比如:$slice:[50,10]

db.user.find({"house":{$exists:}},{"house":{$slice:[,]}});

可以使用$来指定符合条件的任意一个数组元素,如:{”users.$”:1}

 db.user.find({"house":{$exists:}},{"house.$":});

$elemMatch:要求同时使用多个条件语句来对一个数组元素进行比较判断

db.user.find({"house":{$elemMatch:{$gte:,$lt:}}});

查询记录条数的命令:count

db.user.find().count();

如果要获取按条件查询后记录的条数,需要指定count(true或者非0的数)

  • 限制返回的记录条数的命令:limit(要返回的条数)
  • 限制返回的记录条数起点的命令:skip(从第几条开始返回)
  • 排序的命令:sort({要排序的字段:1为升序,-1为降序})
db.user.find({}).limit().count();

db.user.find({}).skip(1).limit(2);

 db.user.find({}).sort({"score":1});

分页查询:组合使用limit,skipt和sort
当然也可以使用其他方式来分页,比如采用自定义的id,然后根据id来分页


查询给定键的所有不重复的数据,命令:distinct
语法:db.runCommand({“distinct”:集合名,“key”:”获得不重复数据的字段”});

 db.runCommand({"distinct":"user","key":"user_id"});

存储过程
MongoDB的存储过程其实就是个自定义的js函数
使用db.system.js.save({“_id”:名称,value:函数});

var totalF=function (a,b){ return a+b ;};

db.system.js.save({"_id":"myF","value":totalF});

可以通过如下命令查看:db.system.js.find();
可以通过如下命令调用:db.eval(名称)

db.eval("myF(1,3)");

MongoDB查询操作的更多相关文章

  1. MongoDB查询操作限制返回字段的方法

    这篇文章主要介绍了MongoDB查询操作限制返回字段的方法,需要的朋友可以参考下   映射(projection )声明用来限制所有查询匹配文档的返回字段.projection以文档的形式列举结果集中 ...

  2. Spring Boot MongoDB 查询操作 (BasicQuery ,BSON)

    MongoDB 查询有四种方式:Query,TextQuery,BasicQuery 和 Bson ,网上太多关于 Query 的查询方式,本文只记录 BasicQuery和Bson 的方式,Basi ...

  3. MongoDB查询操作 返回指定字段(C#官方驱动)

    首先,MongoDB中返回指定的字段的查询方法如下: db.person.find({Name:"小丑"},{Age:1,Sex:1}) 该语句表示:查询person表中name为 ...

  4. 解析PHP中常见的mongodb查询操作

    详细出处参考:http://www.jb51.net/article/38839.htm<?php// 欄位字串為$querys = array("name"=>&qu ...

  5. MongoDB的查询操作

    1. 前言 在这篇博文中,我们将学习如何查询mongoDB中的数据.当我们把数据存储在mongoDB以后,我们需要把数据查询出来.毕竟CRUD操作中,查询操作在我们系统中是我们应用比较频繁的操作.我们 ...

  6. MongoDB各种查询操作详解

    这篇文章主要介绍了MongoDB各种查询操作详解,包括比较查询.关联查询.数组查询等,需要的朋友可以参考下   一.find操作 MongoDB中使用find来进行查询,通过指定find的第一个参数可 ...

  7. [转] MongoDB shell 操作 (查询)

    最近有用到mongoDB,每次都去查看官方文档很是费劲,自己准备写点东西.但在博客园上看到另外的一篇博文不错,就转载过来,加上点儿自己的修饰 左边是mongodb查询语句,右边是sql语句.对照着用, ...

  8. MongoDB源码分析——mongod数据查询操作

    源码版本为MongoDB 2.6分支 Edit mongod数据查询操作 在mongod的初始化过程中说过,服务端接收到客户端消息后调用MyMessageHandler::process函数处理消息. ...

  9. Mongodb基础用法及查询操作[转载]

    插入多条测试数据> for(i=1;i<=1000;i++){... db.blog.insert({"title":i,"content":&qu ...

随机推荐

  1. VSCode前端文件(html文件)如何以服务器模式打开?

    方法1: VSCode前端文件(html文件)如何以服务器模式打开?比如工程下有一个A.html文件,想在VSCode里面直接操作,就想Webstorm一样,以http://localhost/xxx ...

  2. My algorithmic road

    序言 初窥门径 1 第一题 素数的烦恼 离开了家乡,你到达了数字之地,在这里数字2总感觉自己是自然数中最独特的一个,他只有一和它本身两个因数,为此它十分苦恼.为了不再寂寞,他建立了素数王国,他请求许多 ...

  3. Qtcreator远程调试出现“The selected build of GDB does not support Python scripting.It cannot be used .."

      版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/aristolto/article/details/77370853 之前使用的是Qt4.7后来换 ...

  4. Feed流系统设计-总纲

    https://mp.weixin.qq.com/s/ccxM2thPbzg5vDWgGVJ5vQ 作者:少强 简介 差不多十年前,随着功能机的淘汰和智能机的普及,互联网开始进入移动互联网时代,最具代 ...

  5. Java并发包之线程池概述

    前言 线程池的作用就是将线程的管理.创建.销毁等操作与线程需要执行的任务隔离开来,从而避免线程频繁的创建与销毁,以及大量的线程的上下文切换造成的资源损耗.关于Java并发包中的线程池部分,我把它们分为 ...

  6. Docs-.NET-C#-指南-语言参考-预处理器指令:#undef(C# 参考)

    ylbtech-Docs-.NET-C#-指南-语言参考-预处理器指令:#undef(C# 参考) 1.返回顶部 1. #undef(C# 参考) 2018/06/30 #undef 允许你定义一个符 ...

  7. 分析CSS布局神器

    只要在页面下加入如下css,整个css布局就清晰了 * { background-color: rgba(255,0,0,.2); } * * { background-color: rgba(0,2 ...

  8. 简易的CRM系统案例之Struts2+Hibernate3+JSP+MySQL版本

    改造上一版本的DAO层 简易的CRM系统案例之Struts2+JSP+MySQL版本 src文件下hibernate.cfg.xml <!DOCTYPE hibernate-configurat ...

  9. 解决微信小程序textarea层级太高遮挡其他组件的问题

    <view class='remark'> <view class='title'> 备注说明 </view> <textarea class='mark_t ...

  10. ubuntu18.04下eclipse修改maven源为阿里源

    下载安装Java和Eclipse:https://www.cnblogs.com/zifeiy/p/9030111.html 然后命令行安装Maven(不是必须的): sudo apt-get ins ...