MongoDB查询操作
按条件查询
比较操作:$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查询操作的更多相关文章
- MongoDB查询操作限制返回字段的方法
这篇文章主要介绍了MongoDB查询操作限制返回字段的方法,需要的朋友可以参考下 映射(projection )声明用来限制所有查询匹配文档的返回字段.projection以文档的形式列举结果集中 ...
- Spring Boot MongoDB 查询操作 (BasicQuery ,BSON)
MongoDB 查询有四种方式:Query,TextQuery,BasicQuery 和 Bson ,网上太多关于 Query 的查询方式,本文只记录 BasicQuery和Bson 的方式,Basi ...
- MongoDB查询操作 返回指定字段(C#官方驱动)
首先,MongoDB中返回指定的字段的查询方法如下: db.person.find({Name:"小丑"},{Age:1,Sex:1}) 该语句表示:查询person表中name为 ...
- 解析PHP中常见的mongodb查询操作
详细出处参考:http://www.jb51.net/article/38839.htm<?php// 欄位字串為$querys = array("name"=>&qu ...
- MongoDB的查询操作
1. 前言 在这篇博文中,我们将学习如何查询mongoDB中的数据.当我们把数据存储在mongoDB以后,我们需要把数据查询出来.毕竟CRUD操作中,查询操作在我们系统中是我们应用比较频繁的操作.我们 ...
- MongoDB各种查询操作详解
这篇文章主要介绍了MongoDB各种查询操作详解,包括比较查询.关联查询.数组查询等,需要的朋友可以参考下 一.find操作 MongoDB中使用find来进行查询,通过指定find的第一个参数可 ...
- [转] MongoDB shell 操作 (查询)
最近有用到mongoDB,每次都去查看官方文档很是费劲,自己准备写点东西.但在博客园上看到另外的一篇博文不错,就转载过来,加上点儿自己的修饰 左边是mongodb查询语句,右边是sql语句.对照着用, ...
- MongoDB源码分析——mongod数据查询操作
源码版本为MongoDB 2.6分支 Edit mongod数据查询操作 在mongod的初始化过程中说过,服务端接收到客户端消息后调用MyMessageHandler::process函数处理消息. ...
- Mongodb基础用法及查询操作[转载]
插入多条测试数据> for(i=1;i<=1000;i++){... db.blog.insert({"title":i,"content":&qu ...
随机推荐
- Python3中转换字符串编码
在使用subprocess调用Windows命令时,遇到了字符串不显示中文的问题,源码如下:#-*-coding:utf-8-*-__author__ = '$USER' #-*-coding:utf ...
- 上传图片获取base64编码、本地预览
一.读取文件的对象 — new FileReader() 上传图片接口参数有图片base64编码(数组, imgBase64List ),主要用到 读取文件的对象 [ new FileReader ...
- 富文本编辑器handyeditor,上传和预览图片的host地址不一样
使用富文本编辑器(官网)时,大多时候都会用到图片上传,但是下载的富文本编辑器的默认配置是只有一个上传地址的host的. var he = HE.getEditor('editor', { autoHe ...
- React Native 中的 Flex Box 的用法(水平布局、垂直布局、水平居中、垂直居中、居中布局)
版权声明:本文仅供个人学习. CSS 中 Flex-Box 语法链接 http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html Flex 是 ...
- matlab学习——05插值和拟合(一维二维插值,拟合)
05插值和拟合 1.一维插值 (1) 机床加工零件,试用分段线性和三次样条两种插值方法计算.并求x=0处的曲线斜率和13<=x<=15范围内y的最小值. x0=[0 3 5 7 9 11 ...
- 学习 TTreeView [15] - 连接数据库 (作为给 "丁永其" 和 "DELPHI万岁" 两位朋友的回复)
本例效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Contro ...
- otepad++ 配置 支持jquery、html、css、javascript、php代码提示
官网下载:http://notepad-plus-plus.org/ 获取插件的方法:打开软件,窗口工具栏有有一个问号,点获取插件. 我使用的插件(安装方法都是官方的方法): QuickText.v0 ...
- ES SQL使用说明文档
ES SQL使用说明文档 一.Elasticsearch术语介绍 l 接近实时(NRT): Elasticsearch 是一个接近实时的搜索平台.这意味着,从索引一个文档直到这个文档能够被搜索到有一 ...
- 不论报任何错误 都是网络源有问题,安装spacemacs报错的解决方式
不论报任何错误 都是网络源有问题 打开.spacemacs ### 这是原头部 (defun dotspacemacs/layers () "Configuration Layers d ...
- Flutter TextField 文本输入框的基本属性及详解
TextField 文本输入框 源码分析: const TextField({ Key key, this.controller, // 控制正在编辑文本 this.focusNode, // 获取键 ...