mongodb or and 条件拼凑 Query.And Query.Or
查询 1月 7月 8月 的数据
list
- [0] { "$or" : [{ "JobDate" : { "$gte" : ISODate("2017-12-31T16:00:00Z"), "$lte" : ISODate("2018-01-31T15:59:59.999Z") } }, { "JobDate" : { "$gte" : ISODate("2018-06-30T16:00:00Z"), "$lte" : ISODate("2018-07-31T15:59:59.999Z") } }, { "JobDate" : { "$gte" : ISODate("2018-07-31T16:00:00Z"), "$lte" : ISODate("2018-08-31T15:59:59.999Z") } }] } MongoDB.Driver.IMongoQuery {MongoDB.Driver.QueryDocument}
{ "$or" : [{ "JobDate" : { "$gte" : ISODate("2017-12-31T16:00:00Z"), "$lte" : ISODate("2018-01-31T15:59:59.999Z") } }, { "JobDate" : { "$gte" : ISODate("2018-06-30T16:00:00Z"), "$lte" : ISODate("2018-07-31T15:59:59.999Z") } }, { "JobDate" : { "$gte" : ISODate("2018-07-31T16:00:00Z"), "$lte" : ISODate("2018-08-31T15:59:59.999Z") } }] }
or 都用这种拼接
or、是一大块 (数组) 里面的条件都是一段一段(每个元素)
mq为一个或者块 里面每一条数据 为一段时间区间 某一段 为 8月1号到8月30号 (所以用and)
然后在用或者组合起来
+ Query.Or(mq) { "$or" : [{ "JobDate" : { "$gte" : ISODate("2017-12-31T16:00:00Z"), "$lte" : ISODate("2018-01-31T15:59:59.999Z") } }, { "JobDate" : { "$gte" : ISODate("2018-06-30T16:00:00Z"), "$lte" : ISODate("2018-07-31T15:59:59.999Z") } }, { "JobDate" : { "$gte" : ISODate("2018-07-31T16:00:00Z"), "$lte" : ISODate("2018-08-31T15:59:59.999Z") } }] } MongoDB.Driver.IMongoQuery {MongoDB.Driver.QueryDocument}
组成一块
在与其他条件拼接
再看一个复杂点的
queryss
{ "$and" : [{ "$or" : [{ "Lineid" : /05698e90-8e6c-418d-9fd4-e50913c7a2df/ }, { "Lineid" : /063cd6b6-fed5-460a-a9e7-2d3e24c6ff3a/ }, { "Lineid" : /0a62d357-cb62-4701-8932-308f0caec7e1/ }, { "Lineid" : /0ce3471b-d143-4f3e-b186-69ab86ebef5c/ }, { "Lineid" : /0e3c7818-82cc-4494-bdcb-5bcfdfa698a9/ }, { "Lineid" : /0f193ce1-0344-443a-806f-1fce4fae6ed7/ }, { "Lineid" : /2a035070-c809-4603-b0f3-8479e81d4f97/ }, { "Lineid" : /2e6df343-fb9d-4ae9-b391-fcf90f21e6bf/ }, { "Lineid" : /3c9626d2-ddbb-4d4d-bc58-1a79d9ec0e23/ }, { "Lineid" : /44a82200-eb6a-4dcb-8fe6-60220618621f/ }, { "Lineid" : /491d94f1-0518-4cab-b5d0-3dfcfb58549b/ }, { "Lineid" : /4986a34a-ed90-4f7f-8136-8ad864ba23ee/ }, { "Lineid" : /525213a5-b171-4fca-a9d9-e4cb14f1c475/ }, { "Lineid" : /5d19f748-2df9-4893-aeb6-f1c524537af0/ }, { "Lineid" : /5d2809ec-feed-4c46-9bf0-3f9c3c9bc017/ }, { "Lineid" : /60bad064-3582-4744-bf16-e89a738583a6/ }, { "Lineid" : /68e69bfb-066d-4ef0-843f-251e27a1601a/ }, { "Lineid" : /6f1da95c-8e7f-4ae3-a4ce-799bcfe1d9d9/ }, { "Lineid" : /6fe4b7a8-9fae-431c-a48c-d681f21f1785/ }, { "Lineid" : /758cbc79-a80b-4c6f-b966-5fb08023a5fc/ }, { "Lineid" : /78e03e4c-7966-4875-b1a0-ffbea369e1c1/ }, { "Lineid" : /7c469ad9-fffd-4a7d-878f-cb8d36fb3110/ }, { "Lineid" : /88debfa9-d0fd-4a8c-9543-4b85b790b029/ }, { "Lineid" : /8eba7e67-508e-495f-a890-42d30c6f58c7/ }, { "Lineid" : /918c2762-f7f7-4206-af25-4bd97bb8be8a/ }, { "Lineid" : /93e1ee49-6be5-4967-bfea-29d76972ceb6/ }, { "Lineid" : /98e3cd50-356d-4c7d-b5b4-8f939cfc17ae/ }, { "Lineid" : /a0332eea-80fd-41c3-b47b-3f7ce38f9db9/ }, { "Lineid" : /aa151adb-bf0a-4533-96cb-d6a270665561/ }, { "Lineid" : /ab8d4f11-8008-4954-ad1b-977230360673/ }, { "Lineid" : /acfbe95c-91c8-4d97-b79b-b657eb2fcca3/ }, { "Lineid" : /d0e7254a-849e-4d82-bffa-49250402a9ac/ }, { "Lineid" : /d30b6d0e-f6a3-4b8e-852f-b8dc2a3fd0c9/ }, { "Lineid" : /d35ed599-6b5f-4f14-be7f-956a10acf6e7/ }, { "Lineid" : /d4cdb470-d593-4876-8e5d-bc4e84a9eed7/ }, { "Lineid" : /d6f93b2b-6ac8-4f51-9ca0-01f8fb07ed82/ }, { "Lineid" : /dbd33af7-3f29-4760-b418-6e99b22dcf08/ }, { "Lineid" : /e873a0d2-ff6b-432f-8a08-aca900938f2d/ }, { "Lineid" : /e8bb0b96-8818-4de2-bbdf-1ba0277477ab/ }, { "Lineid" : /ee82e295-7c20-4489-b28c-91e7a41aa78f/ }, { "Lineid" : /f24d23ae-2fef-4dbf-a763-11a6bcdf6ed9/ }, { "Lineid" : /f3fb0aab-826a-4425-b52b-043de11977a0/ }, { "Lineid" : /f73e5a94-dd1b-4c9a-93c5-f6ac2eaffd4c/ }, { "Lineid" : /f79ccef3-0a4e-47a1-9f08-be9e7f1c1c50/ }] }, { "$or" : [{ "Content" : /Change Vehicle/ }, { "Content" : /Change Crew/ }] }] }
db.Log_Line.find() json 直接放在()里面 执行and[{or[{},{},{}...]} , {or[{},{}]}]
A {or[{a1},{a2},{a3}...]}
B {or[{b1},{b2}]}
条件是 那条数据的 Id 为 (a1 或 a2 或 a3) 并且 Name 为(b1 或 b2)
Query.Matches("Content", "Change Vehicle") { "Content" : /Change Vehicle/ }
说明 new List<IMongoQuery>().Add() 是并且
list.Add(Query.GTE("Date", dt));
list.Add(Query.LTE("Date", edt));
Date 大于等于 dt 并且 Date 小于等于 edt
要用或者 先组织好 并且的 数据
List<IMongoQuery> mq3 = new List<IMongoQuery>();
mq3.Add(Query.Matches("Content", "Change Vehicle"));
mq3.Add(Query.Matches("Content", "Change Crew"));
list.Add(Query.Or(mq3)); 然后 Query.Or 添加 就指定里面的集 全是或者了 然后添加到集合 并且
List<IMongoQuery> mq = new List<IMongoQuery>();
foreach (var item in LineInfos.Select(A => A.Id))
{
mq.Add(Query.Matches("Lineid", item.ToStr()));
}
list.Add(Query.Or(mq)); mq里面集 全是或者 然后添加到集合 并且
说明mq并且mq3
但是mq mq3 里面的集是或者的
mongodb or and 条件拼凑 Query.And Query.Or相关推荐
- JAVA | MongoDB 去重、聚合函数、Criteria Query使用
前言 最近项目工作中遇到mongo复杂查询的语句使用,其中使用到数据去重,分组查询. 去重 mongo中去重和sql语句一样都是使用distinct // 对时间范围内的name字段去重 db.get ...
- mongodb java 多条件查询_MongoDB查询之高级操作详解(多条件查询、正则匹配查询等)...
MongoDB查询之高级操作 语法介绍 MongoDB查询文档使用find()方法,同时find()方法以非结构化的方式来显示所有查询到的文档. -- 1.基本语法 db.collection.fin ...
- springboot 中MongoDB查询、条件查询、分页
maven配置依赖: <dependencyManagement><dependencies><dependency><groupId>org.spri ...
- Spring Data MongoDB 多个条件或查询
//查询是否选择全省Criteria c1 = Criteria.where("relationOrgProductsScope").elemMatch(Criteria.wher ...
- $query = mysql_query_关于$query=mysql_query($query);返回的是什么类型的值的问题的理解 | 学步园...
关于$query=mysql_query($query);返回的是什么类型的值的问题的理解 今天泡csdn论坛看见一贴,就是关于$query=mysql_query($query);返回的是什么类型的 ...
- mysql query profiler_MySQL Query Profiler
查看MySQL语法详细执行时间与CPU/记忆体使用量: MySQL Query Profiler MySQL的SQL语法调整主要都是使用EXPLAIN,但是这个并没办法知道详细的Ram(Memory) ...
- Hibernate中的query.setFirstResult(),query.setMaxResults();
一.query.scroll()和query.setFirstResult(),query.setMaxResults();这两种方法都可以取到一定范围内的数据,用来数据分页显示.那么两者区别, ...
- mongodb java 多条件查询_MongoDB_Java连接mongo 使用Java多条件查询mongo数据
在mongo shell中的查询语句是这样的.. db.user.find({"age":{"$gt":5,"$lt":14}})我们用Ja ...
- dojo使用query dojo/query
要使用query,就要引入dojo/query包. query可以根据Dom里节点的标签名.id名.class名来检索一个或多个节点. -------------------------------- ...
最新文章
- 自动驾驶多模态传感器融合的综述
- JQuery 模糊匹配
- ios11,弹出层内的input框光标错位 键盘弹出时,输入信息,光标一直乱跳
- shell脚本输出带颜色字体
- 【python数据挖掘课程】二十九.数据预处理之字符型转换数值型、标准化、归一化处理
- revit对齐命令选不中_如何利用无人机+Photoscan+Revit完成土方计算
- ubuntu创建切换超级用户
- G面经prepare: BuyGoods
- 韩昊20190912-3 词频统计
- next项目部署到服务器pm2进程守护
- 三、GDT和IDT的配置
- Vulhub安装过程记录(包括kali快速安装,一个apache中间件漏洞测试)
- Python利用pptx模块三步将图片插入特定PPT模板
- Java-满天繁星案例(2)
- 抱团股会一直涨?无脑执行大小盘轮动策略,轻松跑赢指数5倍【附Python代码】
- SASS的安装与使用(windows系统)
- 远程连接服务器工具,好用的远程登录服务器工具
- 楚列斯基分解法、求矩阵范数的C++实现
- 解决Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1的一种方法
- 咖啡就是咖啡,不管放了多少糖,依然会有淡淡的苦
热门文章
- iOS Emoji表情编码/解码
- [BZOJ 1012] [JSOI 2008] 最大数maxnumber
- bzoj 1257: [CQOI2007]余数之和sum 数论
- 程序一旦发觉写得不理想,那就得重构它
- WAF与IPS的区别总结
- 一看就会之—利用IIS服务发布网站(实践篇)上
- ECSHOP设置默认配送方式和默认支付方式
- 遍历repeater中的控件的几种方式
- CentOS统的7个运行级别的含义
- OpenResty+Lua+redis+mysql实现高性能高可用限流缓存