2019独角兽企业重金招聘Python工程师标准>>>

对 数据库的查询是相当频繁的,而且很多特殊的需求我们都可以通过SQL查询语句构造出来。那么我们平时习惯的SELECT语法实现的各种功能,在 MongoDB中是怎么实现的,他们之间是怎么区别的。现在我们就来研究下MongoDB的查询语法和SQL的SELECT语法的不同。

1.查询所有数据
SQL:SELECT * FROM UserInfo

MongoDB:db.UserInfo.find()

2.查询特定列,其中MongoDB的_id列是默认查询出来的,不管该记录中是否存在userName,Age,Status这三个字段,userName:1就是显示该字段,userName:0就是不显示该字段,所以要不显示_id,就可以加上_id:0即可
SQL:SELECT _id,userName,Age,Status FROM UserInfo
MongoDB:db.UserInfo.find({},{userName:1,Age:1,Status:1})

3.按Status的值为A的这个条件查询所有数据
SQL:SELECT * FROM UserInfo WHERE Status ='A'
MongoDB:db.UserInfo.find({Status:"A"})

4.按Status的值为A的这个条件特定字段数据
SQL:SELECT userName FROM UserInfo WHERE Status ='A'
MongoDB:db.UserInfo.find({Status:"A"},{userName:1,_id:0})

5.查找Status的值不等于A的这个条件 所有字段
SQL:SELECT * FROM UserInfo WHERE Status != "A"
MongoDB:db.UserInfo.find({ Status : { $ne: "A" } })

6.按AND条件查询,有时候我们需要查询出同时2个或以上条件都成立的数据时会用到ADN这个运行符。
SQL:SELECT * FROM UserInfo WHERE Status = "A" AND Age = 45
MongoDB:db.UserInfo.find({ Status : "A" ,Age:45 })

7.按OR条件查询,有时候我们需要查询出2个或以上条件至少一个成立的数据时会用到OR这个运行符。
SQL:SELECT * FROM UserInfo WHERE Status = "A" OR Age = 45
MongoDB:db.UserInfo.find({$or:[{Status : "A"} ,{Age:45}]})

8.按大于号(>)条件查询
SQL:SELECT * FROM UserInfo WHERE Age > 45
MongoDB:db.UserInfo.find({Age:{$gt:45}})

9.按小于号(<)条件查询
SQL:SELECT * FROM UserInfo WHERE Age < 45
MongoDB:db.UserInfo.find({Age:{$lt:45}})

10.查询Age值的范围在25(>)到45(<=)之间
SQL:SELECT * FROM UserInfo WHERE Age > 25 AND Age <=45
MongoDB:db.UserInfo.find({Age:{$gt:25,$lte:45}})

11.LIKE模糊查询userName包含A字母的数据(%A%)
SQL:SELECT * FROM UserInfo WHERE userName LIKE "%A%"
MongoDB:db.UserInfo.find({userName :/A/})

12.LIKE模糊查询userName以字母A开头的数据(A%)。
SQL:SELECT * FROM UserInfo WHERE userName LIKE "A%"
MongoDB:db.UserInfo.find({userName :/^A/})

13.查询结果使用ORDER BY 字段 ASC排序
SQL:SELECT * FROM UserInfo WHERE userName ="Lucy" ORDER BY _id ASC
MongoDB:db.UserInfo.find({userName :"Lucy"}).sort({_id:1})

14.查询结果使用ORDER BY 字段 DESC排序
SQL:SELECT * FROM UserInfo WHERE userName ="Lucy" ORDER BY _id DESC
MongoDB:db.UserInfo.find({userName :"Lucy"}).sort({_id:-1})

转载于:https://my.oschina.net/sai20150901/blog/1814107

MongoDB的查询语法和SQL的SELECT语法做对比相关推荐

  1. R语言构建仿真数据库(sqlite)并使用dplyr语法和SQL语法查询数据库、将dplyr语法查询语句翻译为SQL查询语句

    R语言构建仿真数据库(sqlite)并使用dplyr语法和SQL语法查询数据库.将dplyr语法查询语句翻译为SQL查询语句 目录

  2. oracle模糊查询like语句,sql语句select like模糊查询用法

    本节内容: sql语句之select like模糊查询语法 1,like语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的 ...

  3. oracle语法和sql的区别吗,ORACLE和SQL语法区别归纳

    ORACLE和SQL语法区别归纳 数据类型比较 类型名称 Oracle SQLServer 比较 字符数据类型 CHAR CHAR 都是固定长度字符资料但oracle里面最大度为2kb,SQLServ ...

  4. SQL教程——select语法

    本教程中所使用的数据库的建表语句都在"SQL教程--索引"这篇文章中,点击链接直达:索引&建表语句 摘要:本文主要通过一些示例来展示数据库最基础的查询语法--select的 ...

  5. mongodb AND查询遇到多个index时候可能会做交集——和复合索引不同

    关于MongoDB中索引文档的一个问题? - To illustrate index intersection, consider a collection orders that has the f ...

  6. MaxCompute SQL的SELECT语法

    MaxCompute SQL支持使用正则表达式select_expr选列. 使用正则表达式select_expr: SELECT `abc.*` FROM t;选出t表中所有列名以abc开头的列. S ...

  7. 数据库SQL基础select语法

    Select 语句语法 select *from xx left join xx on [where 条件字句] [group by 字句] [having 字句] [order by字句] [lim ...

  8. 语法和c区别_dockerfile语法

    上次写了关于Dockerfile镜像精简之道之后,很多小伙伴找我问,dockerfile语法的一些东西,这边文章就介绍一下dockerfile语法吧 FROM FROM是位于我们dockerfile命 ...

  9. 跨服务器查询信息的sql

    --跨服务器查询信息的sql: select * from openrowset( 'SQLOLEDB', '192.168.1.104'; 'sa'; '123.com',[AutoMonitorD ...

最新文章

  1. 解决由于DNS解析导致Emacs启动巨慢的问题
  2. 初识片选信号和中断控制器
  3. 使用PowerDesigner 设计SQL Server 数据库
  4. c#如何wmf图片转换成png图片_每日一学:如何将png图片转换为jpg图片
  5. 理解C#泛型运作原理
  6. python练习_如何使用Logzero在Python中练习记录
  7. javascript设计模式-继承
  8. 9203班级纪律 1202
  9. Zookeeper之Watcher机制详解
  10. 编辑距离Edit distance
  11. Android 准确过滤(禁止) Emoji表情
  12. 按教师名单分配学生抽签程序
  13. CentOS7 U盘安装操作系统卡在Reached target Basic System.
  14. 读论文Beyond Part Models Person Retrieval with Refined Part Pooling
  15. VitalTools 唯她CAD工具集
  16. 测试 必用 工具(测试工具知多少)
  17. GitLab使用手册
  18. python class tynu()_Task02-BaseLine.ipynb
  19. 山楂大仙九月三十号代码上线
  20. Android File格式上传图片

热门文章

  1. 数据按时间拆开分批处理示例
  2. jQuery上传插件-uploadify3.1使用说明
  3. C# 各种字符串格式
  4. 单源最短路径之迪杰斯特拉算法(C语言)
  5. Java中map关于putAll()和“=”的区别
  6. linux安装程序乱码,linux远程桌面乱码解决及引起的相关问题、字库安装
  7. c语言复合语句开始标记字符,国家开放大学C语言程序设计A第一次形考任务及答案(2020年整理)(7页)-原创力文档...
  8. java frame清除控件_java – 清除JFrame的组件并添加新组件
  9. selinux= 为 disabled_CentOS7关闭防火墙和SELinux
  10. secure连不上远程地址_[笔记]Mariadb安装并配置远程访问