MongoDB-SQL语法
MongoDB-SQL语法
可视化软件:Navicat
1. MongoDB-查询
db.getCollection('表名').find({});
db.getCollection('表名').find({"_id":1});
2. MongoDB-NE(NOT EQUAL)查询
db.getCollection('表名').find({"_id":{$ne:1}})
3. MongoDB-IN查询
db.getCollection('表名').find({"_id":{$in:[1,2,3]}});
4. MongoDB-NOT_IN查询
db.getCollection('表名').find({"_id":{$nin:[1,2,3]}})
5. MongoDB-EXISTS查询
db.getCollection('表名').find({"字段名":{$exists:true}});
当boolean为true,$exists匹配包含字段的文档,包括字段值为null的文档。
当boolean为false,$exists返回不包含对应字段的文档。
6. MongoDB-大于小于查询
db.getCollection('表名').find({"_id":{$gt:1}})
(>)---大于---$gt
(<)---小于---$lt
(>=)---大于等于---$gte
(<=)---小于等于---$lte
7. MongoDB-大于小于日期查询
Date方式
db.getCollection('表名').find({"时间字段":{$gte:new Date(2000,1,1)},"时间字段":{$lte:new Date(2030,1,1)}});
ISODate方式
db.getCollection('dictValue').find({"createTime":{$gte:ISODate("2000-01-01T00:00:00Z")},"createTime":{$lte:ISODate("2030-01-01T00:00:00Z")}});
8. MongoDB-模糊匹配
db.表名.find({"字段名": {$regex:'要模糊匹配的字符',$options:'i'}});
$options: '<options>':选项 含义
i===>大小写不敏感
m===>查询匹配中使用了锚,例如^(代表开头)和$(代表结尾),以及匹配n后的字符串
x===>忽视所有空白字符
s===>允许点字符(.)匹配所有的字符,包括换行符
9.分页与排休查询
//条件查排序并分页:1.是升序, -1是降序;2-页码,10-每页条数
db.getCollection('order').find().sort({"payTime":-1}).limit(2,10);
10. MongoDB-修改-所有匹配的数据
db.getCollection('表名').update({"字段名" : "原字段值"},{$set:{"字段名" : "新字段值"}},{multi:true});
11. MongoDB-新增数据
db.getCollection('表名').save({"_id":NumberLong(1)});
12. MongoDB-删除数据
db.getCollection('表名').remove({});
db.getCollection('表名').remove({"_id":1});
13. MongoDB-两个字段比较
常规查询:
db.getCollection('表名').find({$expr:{$gt:["$approve_create", "$approve_delete"]}})
聚合查询:
db.getCollection('表名').aggregate({$match:{$expr:{$gt:["$approve_create", "$approve_delete"]}}})
$gt -------- greater than >
$gte --------- gt equal >=
$lt -------- less than <
$lte --------- lt equal <=
$ne ----------- not equal !=
$eq -------- equal =
14.MongoDB-联表查询,查询总数并分页
联表查询总数:
db.getCollection("表名").aggregate([
{ "$match" : { "userType" : 4.0 } },
{ "$group" : { //分组查询,分组查询后的结果集中只有下面的字段
"_id" : "$userId", //根据userId来分组,分组后userId就是结果集的_id
"count" : { "$sum" : "$isDownLoad" }, //分组计算总数
"mobile" : { "$last" : "$mobile" },
"time" : { "$last" : "$inviteTime" },
"userId" : { "$last" : "$userId" },
"userType" : { "$last" : "$userType" }
} },
{"$match" : {"count" : { "$gt" : 0.0 }} }, //分组后再过滤筛选,只要总数大于0的
{ "$lookup" : {
"from" : "联表查询的表名", //和上面过滤筛选出来的结果集进行联表操作
"localField" : "userId", //当前联表的关联字段
"foreignField" : "_id", //上面查询结果的临时表的关联字段
"as" : "user" //给当前联表取别名为user
} },
{ "$unwind" : {
"path" : "$user",
"includeArrayIndex" : "1index",
"preserveNullAndEmptyArrays" : true
} },
{ "$match" : {"user.provinceId": {"$eq":"520000"}} }, //联表后在过滤筛选数据
{ "$count" : "total" } //查询总数
])
联表分页查询:
db.getCollection("表名").aggregate([
{"$match" : { "userType" : 4.0 }},
{ "$group" : {
"_id" : "$userId",
"count" : { "$sum" : "$isDownLoad"},
"mobile" : { "$last" : "$mobile" },
"time" : { "$last" : "$inviteTime" },
"userId" : { "$last" : "$userId" },
"userType" : { "$last" : "$userType" }
}},
{ "$match" : { "count" : { "$gt" : 0.0 }}},
{"$lookup" : {
"from" : "联表查询的表名",
"localField" : "userId",
"foreignField" : "_id",
"as" : "lp"
} },
{ "$unwind" : {
"path" : "$lp",
"includeArrayIndex" : "1index",
"preserveNullAndEmptyArrays" : true
} },
{ "$match" : {
"lp.provinceId" : "520000" ,
"lp.cityId" : "520100"
} },
{ "$project": {"mobile" : "$mobile","time":"$time","userId":"$userId","userType":"$userType","count":1,"address":'$lp.address'} }, //最后结果集只需要的字段数据
{"$sort" : { "time" : -1.0 }}, //排序
{ "$skip" : 20.0 }, //跳过前面20条数据,从第21条数据开始收集
{ "$limit" : 10.0 } //只收集10条数据
], { "allowDiskUse" : false } );
15.MongoDB-加索引
db.表名.ensureIndex({"字段1":1,"字段2":1,"字段3":1})
MongoDB-SQL语法的更多相关文章
- NoSQL 数据库概览及其与 SQL 语法的比较
NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用的难题. 本文对NoSQL数据库的定义.分类.特征.当前比较流行的NoSQL数据库系统等进行了简单的介绍,并对N ...
- NoSQL数据库概览及其与SQL语法的比較
[文章摘要] HBase是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统.同一时候也是知名的NoSQL数据库之中的一个.NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤 ...
- 值得注意的ibatis动态sql语法格式
一.Ibatis常用动态sql语法,简单粗暴用一例子 <select id="iBatisSelectList" parameterClass="java.util ...
- Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等)
Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等) 子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 = from c i ...
- SQL 语法总结
学了一个月的java,开始有入门的感觉.这段时间接触到了java的JDBC, 发现学习这部分的内容还是要有SQL的基础,于是花费了几天时间学习了一下SQL语法,并将其总结于下. 选择数据 SELECT ...
- SQL语法和运算符(一)
一个数据库通常包含一个或多个表.每个表由一个名字标识,表包含带有数据的记录(行). 一些最重要的SQL命令(SQL对大小写不敏感): 一.SQL语法 select:从数据库中提取数据 update:更 ...
- [转]MySQL 最基本的SQL语法/语句
MySQL 最基本的SQL语法/语句,使用mysql的朋友可以参考下. DDL-数据定义语言(Create,Alter,Drop,DECLARE) DML-数据操纵语言(Select,Delete ...
- SQL语法整理
SQL是Structured Query Language的缩写,中文全名为结构化查询语言,是一种用于数据存储,查询,更新和管理的关系数据库系统. SQL语法 创建表 create table tab ...
- ORACLE分页查询SQL语法——最高效的分页
--1:无ORDER BY排序的写法.(效率最高)--(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!) SELECT * FROM (SELECT ...
- [Android新手区] SQLite 操作详解--SQL语法
该文章完全摘自转自:北大青鸟[Android新手区] SQLite 操作详解--SQL语法 :http://home.bdqn.cn/thread-49363-1-1.html SQLite库可以解 ...
随机推荐
- MyBatis(log4j)
log4j介绍 Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护 ...
- CSDN这么公然爬取(piao qie)cnblogs的文章,给钱了吗?
在CSDN网站经常看到有博客转载cnblogs的文章,开始还以为是网友自行转载,后来才发现,这些所谓的转载应该都是机器爬取(piao qie)过去的.不知道cnblogs对此怎么看. 下面看看几个示例 ...
- 一分钟学一个 Linux 命令 - rm
前言 大家好,我是 god23bin,欢迎回到咱们的<一分钟学一个 Linux 命令>系列,今天我要讲的是一个比较危险的命令,rm 命令,没错,你可以没听过 rm 命令,但是删库跑路你不可 ...
- 使用 virt-install 命令创建虚拟机
实践 参考文档:官方手册 这个命令适用于创建第一个虚拟机,后面如果再增加,修改xml文件或者使用clone命令就可以了. centos.sh #!/bin/bash name='centos7' is ...
- appium环境搭建python
python appium环境搭建 appium是什么? 1,appium是开源的移动端自动化测试框架:2,appium可以测试原生的.混合的.以及移动端的web项目:3,appium可以测试io ...
- JavaScript中单例模式这样用
如果希望自己的代码更优雅.可维护性更高以及更简洁,往往离不开设计模式这一解决方案. 在JS设计模式中,最核心的思想:封装变化(将变与不变分离,确保变化的部分灵活,不变的部分稳定). 单例模式 那么来说 ...
- C#/.NET/.NET Core优秀项目和框架每周精选(坑已挖,欢迎大家踊跃提交PR或者Issues中留言)
前言 注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯). 每周精选优秀的C#/.NET/.NET Core项目和框架,帮助 ...
- 桌面应用打包:pyinstaller
1 背景 在使用python开发一些小工具时,如果其他人电脑中没有python环境或者没有安装相应的第三方库,是没办法运行的,而要求对方安装又不现实,尤其是对方不是技术人员,因此如何将一个独立的pyt ...
- 一次Java内存占用高的排查案例,解释了我对内存问题的所有疑问
原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明. 问题现象 7月25号,我们一服务的内存占用较高,约13G,容器总内存16G,占用约85%,触发了内存报警(阈值8 ...
- 避坑|在读取excel.xlsx文件中的内容时发现明明只有3行,但跑起来却认为有13行,导致有10行None,UI自动化测试代码空跑了10次;|UI自动化测试|数据驱动
在读取excel.xlsx文件中的内容时发现明明只有3行,但跑起来却认为有13行,导致有10行None,UI自动化测试代码空跑了10次: 原因:excel.xlsx内容清除时用delete快捷键导致, ...