前面我们简单的讲了下find方法,下面来深入的过一下它的用法以及常用的字方法。

下面是mongo中db.user.help()中对find方法的定义和解释:

db.user.find([query],[fields]) - query is an optional query filter. fields is optional set of fields to return.
e.g. db.user.find( {x:77} , {name:1, x:1} )

其中fields参数的意图是要显示/不显示的字段列表,不赋值则返回全部字段(_id字段默认返回)。

其中key:flag(0/1)中flag==1表示该字段返回,除了_id字段外,指定的其他字段的flag值必须都一样

例:

/**
查找age==28的记录的_id,name,sex
**/
db.user.find({age:28},{name:1,sex:1})
/**
该查询会报错,因为age必须为1,为0的话其实就不需要写
**/
db.user.find({age:28},{name:1,sex:1,age:0})
/**
查找age==28的记录的name和sex,_id字段不需要返回
**/
db.user.find({age:28},{name:1,sex:1,_id:0})

在数据库的where查询中的比较操作符常用有如下2类:

①: >, >=, <, <=, !=, =。

②:and,or,in,not in

在mongodb中也提供了对这些常用操作符的支持,

1、"$gt", "$gte", "$lt", "$lte", "$ne"对应了>, >=, <, <=, !=,上面的=没有特殊关键字,直接使用key:value即可。

2、 "$or", "$in","$nin"对应了or,in,not in,上面的and没有特殊关键字,直接使用逗号分隔的就是and。

/**
查询age>30的用户
**/
db.user.find({age:{$gt:30}})
/**
查询age<15的用户
**/
db.user.find({age:{$lt:15}})
/**
查询name in ("haha","hehe","jingli")的用户
**/
db.user.find({name:{$in:["haha","hehe","jingli"]}})
/**
查询 name in ("haha","hehe","jingli") and (age<15 or age>30)的用户
**/
db.user.find({name:{$in:["haha","hehe","jingli"]},$or:[{age:{$lt:15}},{age:{$gt:30}}]})

3、使用正则表达式查询

/**
查询名字以h开头的用户
**/
db.user.find({name:/^h/})

4、使用$where来自定义JS的Function来匹配

/**
查询age>30 || age<10的用户
**/
db.user.find({$where:function(){return this.age>30 || this.age<10}})

Mongodb查询命令详解的更多相关文章

  1. ELK查询命令详解

    目录 ELK查询命令详解 倒排索引 使用ElasticSearch API 实现CRUD 批量获取文档 使用Bulk API 实现批量操作 版本控制 什么是Mapping? 基本查询(Query查询) ...

  2. ELK查询命令详解总结

    目录 ELK查询命令详解 倒排索引 倒排索引原理 分词器介绍及内置分词器 使用ElasticSearch API 实现CRUD 批量获取文档 使用Bulk API 实现批量操作 版本控制 什么是Map ...

  3. mongoDB group命令详解

    http://heipark.iteye.com/blog/1167948       http://rjhym.iteye.com/blog/1224200 http://blog.163.com/ ...

  4. MongoDB各种查询操作详解

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

  5. Linux系统诊断必备技能之二:日志查询常用命令详解

    一.概述 日常运维工作中,排查线上环境问题,少不了去线上查日志.而使用什么命令,能快速准确地查到我们需要查找地日志信息,也是我们需要掌握的一项技能.下面介绍一下日常工作常用到的查看日志命令:tail, ...

  6. windows/NBTSTAT,linux/nmblookup命令详解,查询NetBIOS名

    NBTSTAT命令详解 请问: Linux下有没有和nbtstat一样的命令,用 nmblookup -A ip 可以 nbstat命令主要用于查看当前基于netbios的tcp/ip连接状态,通过该 ...

  7. MongoDb进阶实践之三 MongoDB查询命令详述

    一.引言           上一篇文章我们已经介绍了MongoDB数据库的最基本操作,包括数据库的创建.使用和删除数据库,文档的操作也涉及到了文档的创建.删除.更新和查询,当然也包括集合的创建.重命 ...

  8. MongoDb进阶实践之六 MongoDB查询命令详述(补充)

    一.引言         上一篇文章我们已经介绍了MongoDB数据库的查询操作,但是并没有介绍全,随着自己的学习的深入,对查询又有了新的东西,决定补充进来.如果大家想看上一篇有关MongoDB查询的 ...

  9. MongoDb进阶实践之四 MongoDB查询命令详述

    一.引言 上一篇文章我们已经介绍了MongoDB数据库的最基本操作,包括数据库的创建.使用和删除数据库,文档的操作也涉及到了文档的创建.删除.更新和查询,当然也包括集合的创建.重命名和删除.有了这些基 ...

随机推荐

  1. IO中File类基本使用

    package chapter10; import java.io.File; public class TestFile01 { public static void main(String[] a ...

  2. JavaScript常见的真值

    值 说明 var a =true  值等于true: var a = 1 非0的数字 var a =“hello” 有内容的字符串 var a=20/5 运算结果非0 var a='true' 有内容 ...

  3. ELK - MAC环境搭建

    ELK - MAC环境搭建 本文旨在记录elasticsearch.logstash.kibana在mac下的安装与启动. 写在前面 ELK的官方文档对与它们的使用方法已经讲的非常清楚了,这里只对相关 ...

  4. 037 对于HIVE架构的理解

    0.发展 在hive公布源代码之后 公司又公布了presto,这个比较快,是基于内存的. impala:3s处理1PB数据. 1.Hive  能做什么,与 MapReduce 相比优势在哪里 关于hi ...

  5. 大数据系列博客之 --- 深入简出 Shell 脚本语言(基础篇)

    首先声明,此系列shell系列博客分为四篇发布,分别是: 基础篇:https://www.cnblogs.com/lsy131479/p/9914747.html 提升篇:https://www.cn ...

  6. 从字符集发展史看Unicode和UTF-8的区别

    从字符集发展史看Unicode和UTF-8的区别 版权声明 本文并非本人原创,其内容来源于网络,本文根据其演绎而来,具体出出已经无法考证,在这里只好给出我所参考的连接. 知乎 https://www. ...

  7. C# DataTable分页函数

    /// <summary> /// 对DataTable进行分页,起始页为1 /// </summary> /// <param name="dt"& ...

  8. C# 遍历控件 示例

    foreach(Control c in tabControl1.TabPages)//这个循环的意思是说,遍历tabControl1中所有的TabPages,TabPages是包含在tabContr ...

  9. TFT LCD显示原理详解

    <什么是液晶> 我们一般认为物体有三态:固态.液态.气态,其实这只是针对水而言,有一些有机化和物 还有介于固态和液态中间的状态 就是液晶态,如下图(一):                 ...

  10. 华为机型cordova-plugin-image-picker读取图库闪退

    在测试cordova开发的安卓APP过程中,使用$cordovaImagePicker.getPictures(options)获取相册照片时,华为机型总是会闪退. config.xml已经添加了权限 ...