Java中mongodb使用and和or的复合查询
在MongoDB的JAVA查询中对应这些问题 and查询
//条件 startsAt< curr and endsAt > curr
long curr = new Date().getTime()/1000;
DBObject query = new BasicDBObject();
query.put("startsAt",new BasicDBObject("$lte", curr));
query.put("endsAt",new BasicDBObject("$gte", curr));
or 查询
//条件是startsAt < curr or endsAt>curr
BasicDBObject autoEnd = new BasicDBObject();
BasicDBList condList = new BasicDBList();
condList.add(new BasicDBObject("startsAt", new BasicDBObject("$lte", curr)));
condList.add(new BasicDBObject("endsAt", new BasicDBObject("$gte", curr)));
autoEnd.put("$or",condList);
这是复合查询
//条件类似:project="H" and (startsAt<curr or endsAt>curr)
BasicDBObject basicDBObject = new BasicDBObject();
BasicDBList endList = new BasicDBList();
BasicDBObject forceEnd = new BasicDBObject();
forceEnd.put("project","H");
BasicDBObject autoEnd = new BasicDBObject();
BasicDBList condList = new BasicDBList();
condList.add(new BasicDBObject("startsAt", new BasicDBObject("$lte", curr)));
condList.add(new BasicDBObject("endsAt", new BasicDBObject("$gte", curr)));
autoEnd.put("$or",condList);
endList.add(forceEnd);
endList.add(autoEnd);
basicDBObject.put("$and",endList);
DBCursor cursor = mongoTemplate.getCollection("数据库表名").find(basicDBObject);
Java中mongodb使用and和or的复合查询的更多相关文章
- Java 中 MongoDB 使用指南
一.引入MongoDB Java Driver包 如果需要操作MongoDB的Java项目是一个Maven项目,可以在依赖中加上以下的配置. <dependencies> <depe ...
- java学习(三) java 中 mongodb的各种操作
一. 常用查询: 1. 查询一条数据:(多用于保存时判断db中是否已有当前数据,这里 is 精确匹配,模糊匹配 使用 regex...) public PageUrl getByUrl(String ...
- @suppressWarnings("unchecked") java 中是什么意思 (一般放dao查询方法上)
J2SE 提供的最后一个批注是 @SuppressWarnings.该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默. 一点背景:J2SE 5.0 为 Java 语言增加 ...
- java中异常的面试
https://blog.csdn.net/qq_36523638/article/details/79363652 1) Java中的检查型异常和非检查型异常有什么区别? 这又是一个非常流行的Jav ...
- 夯实Java基础系列10:深入理解Java中的异常体系
目录 为什么要使用异常 异常基本定义 异常体系 初识异常 异常和错误 异常的处理方式 "不负责任"的throws 纠结的finally throw : JRE也使用的关键字 异常调 ...
- Java中正则表达式的使用(常用的方法)
这两天回想了一下正则表达式的使用,顺便就总结了一下java的javascript中使用正则表达式的用法,需要看javascript中使用正则的朋友可以看我的另一篇总结,下面我就简单的介绍一下java中 ...
- Java中使用MongoDB
一.为MongoDB设置用户名和密码 MongoDB中验证用户和密码的条件: 1. 服务器启动的时候打开授权认证,即修改MongoDB的配置文件mongodb.conf,增auth = true # ...
- Java中遍历实体类(处理MongoDB)
在实际过程中,经常要将实体类进行封装,尤其是处理数据库的过程中:因此,对于遍历实体类能够与数据库中的一行数据对应起来. 我是使用的环境是Spring boot,访问的数据库时MongoDB 实体类遍历 ...
- Java对MongoDB中的数据查询处理
Java语言标准的数据库时MySQL,但是有些时候也会用到MongoDB,这次Boss交代处理MongoDB,所以讲代码以及思路记录下了 摸索的过程,才发现软件的适用还是很重要的啊!!! 我连接的Mo ...
随机推荐
- ScheduledExecutorService的使用
http://407827531.iteye.com/blog/1329597 ScheduledExecutorService接口 在ExecutorService的基础上,ScheduledExe ...
- Xcode常见快捷键
在项目工作中,你每天都要和这些视图互动,所有这些视图在Xode中都是必不可少的.所以接下来江哥将教你如何快速通过热键来配置你的工作空间. Command (⌘):用来导航,主要用来控制导航区域. Al ...
- Lib作为“静态库”与“动态库”中的区别
Lib作为“静态库”与“动态库”中的区别 0. 前言: 什么是静态连接库: 静态库在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中.因此对应的链接方式称为静态链接. 为什么 ...
- 在Ubuntu上安装pyenv
因为找到一个域名枚举的脚本使用Python3编写的,而我一直习惯的是使用Python2.7,在自己的Windows7上再安装个Python怕混了,于是想着在VPS上装个Python的版本管理工具,也方 ...
- oj错误之char型超出范围
在oj时遇到一个题 题目本身并不是很难,但在一个数据时出了错,刚开始一直没想通是哪里出了错 下面为源代码 #include <bits/stdc++.h> using namespace ...
- kafka_shell操作
单机版 开启进程: ./bin/kafka-server-start.sh config/server.properties 查看topic列表: ./bin/kafka-topics.sh --li ...
- poj3924
题目:给定一个起点(xw1, yw1),直线经过(xw2, yw2),速度为vw无限运动的点,还有一个起点(xt1, yt1),终点(xt2, yt2),并且在以vt速度在两者往返运动,求两者在运动中 ...
- shell 命令 rz sz
尝试了几个版本,下面的是可用的 https://segmentfault.com/a/1190000012166969
- RxSwift学习笔记5:Binder
使用 Binder 创建观察者 //Observable序列(每隔1秒钟发出一个索引数) let scheduleObservable = Observable<Int>.interval ...
- 1.Django入门
MVC 大部分开发语言中都有MVC框架 MVC框架的核心思想是:解耦 降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现代码的重用 m表示model,主要用于对数据库层的封装 v表示 ...