在mongodb的查询中可以通过使用如下操作符进行深度查询

1.条件操作符

$gt  $gte : >  >=   {"age":{"$gt":18}}

$lt   $lte:   <  <=

$or : 或  {"$or":[{"name":"jack"},{"name":"mike"}]}

$in/$nin : 在集合中/不在集合中  {"age":{"$in":[18,20]}}

$and: 且 用法同$or

$not:  非  {"name":{"$not":"jack"}}

$mod: 取模   {"age":{"$mod":[5,1]}}   选出除以5余数得1的结果

$exists:  查询时附加该键值是否存在   {"name":{"$exists":true}}

$all: 查询的集合包含条件中全部的内容,但是是无序的  {"name":{"$all":["jack","mike"]}}  中招的可能是 name:["mike","jack","mary"]   ,也有 name:["miky","mike","jack"]

$size: 查询出限定属性下长度值为给出的size的数组  {"list":{"$size":2}}

$slice: 取值正负数字,返回多少条文档  {"list":{"$slice":2}}

$elemMatch : 在查询数组时限定取值条件  {"list":{"$elemMatch":{"$gt":10,"$lt":20}}}   如果不加 $elemMatch 则会匹配到 list:[5,25]  因为5<20  25>10  只能应用在数组类型的属性中

$where :  会执行一段js {"$where":function(){return ...}}

除了操作符之外,还有游标操作辅助查询

2.游标操作

next: 遍历游标,并将其取出游标,在shell中执行一次后默认后面全部执行,最终会导致游标结果集为空

hasNext: 检查游标是否为空

forEach: 遍历,和js数组中的forEach功效一致

limit: 取返回结果的前n个,不足n个全部返回

skip: 跳过返回结果的前n个

sort: 根据返回结果中的某一字段进行排序 1 升序  -1 降序

一些总结

要避免使用skip跳过大量数据

mongodb 学习笔记 3 --- 查询的更多相关文章

  1. MongoDB学习笔记六—查询下

    查询内嵌文档 数据准备 > db.blog.find().pretty() { "_id" : ObjectId("585694e4c5b0525a48a441b5 ...

  2. MongoDB学习笔记五—查询上

    数据准备 { , "goods_name" : "KD876", "createTime" : ISODate("2016-12- ...

  3. MongoDB 学习笔记之 查询表达式

    查询表达式: db.stu.find().count() db.stu.find({name: 'Sky'}) db.stu.find({age: {$ne: 20}},{name: 1, age: ...

  4. 【转】MongoDB学习笔记(查询)

    原文地址 MongoDB学习笔记(查询) 基本查询: 构造查询数据. > db.test.findOne() { "_id" : ObjectId("4fd58ec ...

  5. MongoDB学习笔记系列

    回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...

  6. PHP操作MongoDB学习笔记

    <?php/*** PHP操作MongoDB学习笔记*///*************************//**   连接MongoDB数据库  **////*************** ...

  7. MongoDB 学习笔记(原创)

    MongoDB 学习笔记 mongodb 数据库 nosql 一.数据库的基本概念及操作 SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table ...

  8. mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...

  9. MongoDB学习笔记(六)--复制集+sharding分片 && 总结

    复制集+sharding分片                                                               背景 主机 IP 服务及端口 Server A ...

随机推荐

  1. Java序列简单使用

    package javatest; import java.io.*; public class SerializableTest implements Serializable { public s ...

  2. Go语言【第十篇】:Go数据结构之:指针

    Go语言指针 Go语言中指针是很容易学习的,Go语言中使用指针可以更简单的执行一些任务.我们都知道变量是一种使用方便的占位符,用于引用计算机内存地址.Go语言的取地址符是 &,放到一个变量前使 ...

  3. 使用for循环遍历数组元素

    循环可以将代码块执行指定的次数.如果您希望一遍又一遍地运行相同的代码,并且每次的值都不同,那么使用循环是很方便的.迭代语句又叫循环语句. JavaScript 支持不同类型的循环: for - 循环代 ...

  4. 从零开始学Linux系统(一)之引导流程解析

    Linux系统:分时多用户多任务的操作系统: Linux系统引导流程: inittab配置文件中: 定义了linux系统的运行的7个级别:从0~6 0.6:分别代表关机和重启,不建议设置为默认的运行级 ...

  5. 探索CAS无锁技术

    前言:关于同步,很多人都知道synchronized,Reentrantlock等加锁技术,这种方式也很好理解,是在线程访问的临界区资源上建立一个阻塞机制,需要线程等待 其它线程释放了锁,它才能运行. ...

  6. HDU1281: 棋盘游戏(二分图匹配)

    棋盘游戏 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  7. bzoj 1189 [HNOI2007]紧急疏散evacuate 二分+网络流

    [HNOI2007]紧急疏散evacuate Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3626  Solved: 1059[Submit][St ...

  8. 手脱ASProtect v1.23 RC1(有Stolen Code)之以壳解壳

    1.载入PEID ASProtect v1.23 RC1 2.载入OD,不勾选内存访问异常,其他异常全部勾选 > 01C06D00 push SoWorker.006DC001 ; //入口点 ...

  9. phpstorm license 解决

    http://idea.lanyus.com/ sudo vim /etc/hosts 最后添加:  0.0.0.0 account.jetbrains.com 然后把获得的注册码,复制到,licen ...

  10. zoj 1729 Hidden Password

    Hidden Passwordhttp://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=729 Time Limit: 2 Seconds ...