MongoDB的查询语法和SQL的SELECT语法做对比
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语法做对比相关推荐
- R语言构建仿真数据库(sqlite)并使用dplyr语法和SQL语法查询数据库、将dplyr语法查询语句翻译为SQL查询语句
R语言构建仿真数据库(sqlite)并使用dplyr语法和SQL语法查询数据库.将dplyr语法查询语句翻译为SQL查询语句 目录
- oracle模糊查询like语句,sql语句select like模糊查询用法
本节内容: sql语句之select like模糊查询语法 1,like语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的 ...
- oracle语法和sql的区别吗,ORACLE和SQL语法区别归纳
ORACLE和SQL语法区别归纳 数据类型比较 类型名称 Oracle SQLServer 比较 字符数据类型 CHAR CHAR 都是固定长度字符资料但oracle里面最大度为2kb,SQLServ ...
- SQL教程——select语法
本教程中所使用的数据库的建表语句都在"SQL教程--索引"这篇文章中,点击链接直达:索引&建表语句 摘要:本文主要通过一些示例来展示数据库最基础的查询语法--select的 ...
- mongodb AND查询遇到多个index时候可能会做交集——和复合索引不同
关于MongoDB中索引文档的一个问题? - To illustrate index intersection, consider a collection orders that has the f ...
- MaxCompute SQL的SELECT语法
MaxCompute SQL支持使用正则表达式select_expr选列. 使用正则表达式select_expr: SELECT `abc.*` FROM t;选出t表中所有列名以abc开头的列. S ...
- 数据库SQL基础select语法
Select 语句语法 select *from xx left join xx on [where 条件字句] [group by 字句] [having 字句] [order by字句] [lim ...
- 语法和c区别_dockerfile语法
上次写了关于Dockerfile镜像精简之道之后,很多小伙伴找我问,dockerfile语法的一些东西,这边文章就介绍一下dockerfile语法吧 FROM FROM是位于我们dockerfile命 ...
- 跨服务器查询信息的sql
--跨服务器查询信息的sql: select * from openrowset( 'SQLOLEDB', '192.168.1.104'; 'sa'; '123.com',[AutoMonitorD ...
最新文章
- 解决由于DNS解析导致Emacs启动巨慢的问题
- 初识片选信号和中断控制器
- 使用PowerDesigner 设计SQL Server 数据库
- c#如何wmf图片转换成png图片_每日一学:如何将png图片转换为jpg图片
- 理解C#泛型运作原理
- python练习_如何使用Logzero在Python中练习记录
- javascript设计模式-继承
- 9203班级纪律 1202
- Zookeeper之Watcher机制详解
- 编辑距离Edit distance
- Android 准确过滤(禁止) Emoji表情
- 按教师名单分配学生抽签程序
- CentOS7 U盘安装操作系统卡在Reached target Basic System.
- 读论文Beyond Part Models Person Retrieval with Refined Part Pooling
- VitalTools 唯她CAD工具集
- 测试 必用 工具(测试工具知多少)
- GitLab使用手册
- python class tynu()_Task02-BaseLine.ipynb
- 山楂大仙九月三十号代码上线
- Android File格式上传图片
热门文章
- 数据按时间拆开分批处理示例
- jQuery上传插件-uploadify3.1使用说明
- C# 各种字符串格式
- 单源最短路径之迪杰斯特拉算法(C语言)
- Java中map关于putAll()和“=”的区别
- linux安装程序乱码,linux远程桌面乱码解决及引起的相关问题、字库安装
- c语言复合语句开始标记字符,国家开放大学C语言程序设计A第一次形考任务及答案(2020年整理)(7页)-原创力文档...
- java frame清除控件_java – 清除JFrame的组件并添加新组件
- selinux= 为 disabled_CentOS7关闭防火墙和SELinux
- secure连不上远程地址_[笔记]Mariadb安装并配置远程访问