左边是mongodb查询语句,右边是sql语句。对照着用,挺方便。

db.users.find() select * from users

db.users.find({"age" : 27}) select * from users where age = 27

db.users.find({"username" : "joe", "age" : 27}) select * from users where "username" = "joe" and age = 27

db.users.find({}, {"username" : 1, "email" : 1}) select username, email from users

db.users.find({}, {"username" : 1, "_id" : 0}) // no case  // 即时加上了列筛选,_id也会返回;必须显式的阻止_id返回

db.users.find({"age" : {"$gte" : 18, "$lte" : 30}}) select * from users where age >=18 and age <= 30 // $lt(<) $lte(<=) $gt(>) $gte(>=)

db.users.find({"username" : {"$ne" : "joe"}}) select * from users where username <> "joe"

db.users.find({"ticket_no" : {"$in" : [725, 542, 390]}}) select * from users where ticket_no in (725, 542, 390)

db.users.find({"ticket_no" : {"$nin" : [725, 542, 390]}}) select * from users where ticket_no not in (725, 542, 390)

db.users.find({"$or" : [{"ticket_no" : 725}, {"winner" : true}]}) select * form users where ticket_no = 725 or winner = true

db.users.find({"id_num" : {"$mod" : [5, 1]}}) select * from users where (id_num mod 5) = 1

db.users.find({"$not": {"age" : 27}}) select * from users where not (age = 27)

db.users.find({"username" : {"$in" : [null], "$exists" : true}}) select * from users where username is null // 如果直接通过find({"username" : null})进行查询,那么连带"没有username"的纪录一并筛选出来

db.users.find({"name" : /joey?/i}) // 正则查询,value是符合PCRE的表达式

db.food.find({fruit : {$all : ["apple", "banana"]}}) // 对数组的查询, 字段fruit中,既包含"apple",又包含"banana"的纪录

db.food.find({"fruit.2" : "peach"}) // 对数组的查询, 字段fruit中,第3个(从0开始)元素是peach的纪录

db.food.find({"fruit" : {"$size" : 3}}) // 对数组的查询, 查询数组元素个数是3的记录,$size前面无法和其他的操作符复合使用

db.users.findOne(criteria, {"comments" : {"$slice" : 10}}) // 对数组的查询,只返回数组comments中的前十条,还可以{"$slice" : -10}, {"$slice" : [23, 10]}; 分别返回最后10条,和中间10条

db.people.find({"name.first" : "Joe", "name.last" : "Schmoe"})  // 嵌套查询

db.blog.find({"comments" : {"$elemMatch" : {"author" : "joe", "score" : {"$gte" : 5}}}}) // 嵌套查询,仅当嵌套的元素是数组时使用,

db.foo.find({"$where" : "this.x + this.y == 10"}) // 复杂的查询,$where当然是非常方便的,但效率低下。对于复杂查询,考虑的顺序应当是 正则 -> MapReduce -> $where

db.foo.find({"$where" : "function() { return this.x + this.y == 10; }"}) // $where可以支持javascript函数作为查询条件

db.foo.find().sort({"x" : 1}).limit(1).skip(10); // 返回第(10, 11]条,按"x"进行排序; 三个limit的顺序是任意的,应该尽量避免skip中使用large-number

转自:http://www.cnblogs.com/viviman/archive/2012/11/21/2780562.html

转载于:https://www.cnblogs.com/Kuleft/p/5407491.html

Mongodb查询语句与Sql语句对比相关推荐

  1. mysql查询建表SQL语句

    前言 mysql 5.7.26 查询建表SQL语句 SHOW CREATE TABLE <表名> 示例1: shell> mysql -uroot -p Enter password ...

  2. sql server 运维时CPU,内存,操作系统等信息查询(用sql语句)

    原文:sql server 运维时CPU,内存,操作系统等信息查询(用sql语句) 我们只要用到数据库,一般会遇到数据库运维方面的事情,需要我们寻找原因,有很多是关乎处理器(CPU).内存(Memor ...

  3. mysql 怎么查询慢sql语句_Mysql中 查询慢的 Sql语句的记录查找

    Mysql中 查询慢的 Sql语句的记录查找 慢查询日志 slow_query_log,是用来记录查询比较慢的sql语句,通过查询日志来查找哪条sql语句比较慢,这样可以对比较慢的sql可以进行优化. ...

  4. Oracle数据库表连接查询并分页SQL语句提示未明确定义列

    Oracle数据库表连接查询并分页SQL语句提示未明确定义列 两张表中的字段: t_product t_category product_id category_id product_name cat ...

  5. oracle sq语句查询时间,Oracle实现查询时间段的Sql语句两法

    Oracle实现查询时间段的Sql语句两法,相比ORacle要查询时间段的Sql语句还是与Sql Server的Sql语句有区别的,下面举两种方法来说明在ORacle是如何查询时间段的: 第一种方法: ...

  6. Hot Chocolate提供了UseFiltering属性来用于构造包含查询过滤的SQL语句,所以我们直接使用就好了

    使用Hot Chocolate和.NET 6构建GraphQL应用(5) -- 实现Query过滤功能 系列导航# 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引 需求# ...

  7. sqlserver sql语句|经典sql语句|实用sql语句

    sqlserver sql语句|经典sql语句|实用sql语句 一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop databa ...

  8. 学习SQL语句之SQL语句大全

    学习SQL语句之SQL语句大全 -------------------------------------------------------------------------------- 作者: ...

  9. mysql语句生成,SQL语句生成器

    SQL语句自动生成器正式版是一款功能强大.十分实用方便的数据库编程软件,可以帮助用户简便快捷的生成sql语句,SQL语句自动生成器正式版支持桌面数据库和大中型数据库,以及排序.条件.分组.函数等多种s ...

  10. 【mySQL】mySQL动态语句(SQL语句中有变量)

    mysql开发中文博客:https://imysql.cn/ 动态表名列名: delimiter // create procedure oneKey(in newName varchar(250), ...

最新文章

  1. Zend Guard 各版本下载【破解方法】
  2. kafka身份认证 maxwell_聊聊MaxwellKafkaProducer
  3. python 读写数据
  4. Python---udp绑定信息以及网络通信过程
  5. Docker最全教程——数据库容器化之持久保存数据(十二)
  6. 技术沙龙|赋能企业数字化转型,移动云云原生应用架构实践
  7. php怎么截取数组最后元素,PHP如何获取数组最后一个元素的键和值?(图文+视频)...
  8. 春天的事务管理,图解事务传播行为
  9. CSS3D写3d画廊滚动
  10. 安卓rom制作教程_刹那 刷机教程20-1三星S10N10等系列韩版国行安卓9升级10详细步骤...
  11. 在wps里面怎么设置触发器_wps触发器怎么设置
  12. 计算机绘图国标规定,机械制图教程(1.1)国家标准关于制图的一般规定
  13. 惠普硬盘测试工具_不掉速的黑科技,HP固态硬盘测试与拆解
  14. 华硕电脑GeForce类显卡如何解决:NVIDIA安装程序无法继续
  15. oracle取较小数,oracle 取小数位数
  16. PHP WebSehll 后门脚本与检测工具
  17. 【Elasticsearch】 (搜索引擎如何做搜索推荐?) Elasticsearch中 使用 Suggesters 推荐查询
  18. 用HTML/CSS制作一个美观的个人简介网页——学习周记1
  19. 【Camera】Camera中光圈、快门、感光度
  20. 香肠派对手游怎么在电脑上玩 香肠派对电脑版玩法教程

热门文章

  1. sqlserver 2014 删除主键约束
  2. VM中Windows server 2012 R2系统安装SQL SERVER 2012的安装步骤
  3. 将Windows MyEclipse的web项目移植到Debian下
  4. Leetcode Maximal Rectangle
  5. CCommandLineInfo详解-启动不创建新文档【对单文档有问题?】
  6. 函数形参传递概念及问题分析
  7. IP地址不是唯一的吗?为什么路由器的IP地址都是这样的呢?
  8. SQL触发器实例讲解
  9. TCP/UDP网络编程入门教程之二:TCP Server端——socket与文件描述符
  10. 单片微型计算机简称单片机是指集成,什么是单片微型计算机 -解决方案-华强电子网...