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 ...
随机推荐
- Leetcod--20. Valid Parentheses(极简洁的括号匹配)
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the inpu ...
- struts2马士兵笔记
Struts2 学习笔记 目录 01 Struts2-Action 一. Struts作用: 二. 搭建Struts2的运行环境: 三. Namespa ...
- 编程中常用的DOS命令
1. dir directory 无参数:查看当前所在目录的文件和文件夹. /s : 查看当前目录以及其所有子目录的文件和文件夹 /a :查看包含的隐含文件的所有文件. /ah :只显示出隐含文 ...
- Mysql 基本的增删改查
创建数据库 create database 库名; 删除数据库 drop database 库名; 进入数据库 use 库名; 查看所有的表 show tables; 创建表 字段名 数据类型 ...
- 连接Oracle时ORA-12541 TNS 无监听程序
http://www.cnblogs.com/Qian123/archive/2016/08/24/5803085.html
- 运行批处理文件怎么不显示DOS命令窗口
运行批处理文件怎么不显示DOS命令窗口 BAT没法不显示DOS窗口.你可以考虑用脚本保持以下到文本文件,重命名为AutoUp_ddyy.vbs set WshShell = WScript.Cre ...
- cxGrid控件过滤筛选后如何获更新筛选后的数据集
cxGrid控件过滤筛选后如何获更新筛选后的数据集 (2015-06-19 12:12:08) 转载▼ 标签: delphi cxgrid筛选数据集 cxgrid过滤 分类: Delphi cxGri ...
- node-webkit学习(3)Native UI API概览
node-webkit学习(3)Native UI API概览 文/玄魂 目录 node-webkit学习(3)Native UI API概览 前言 3.1 Native UI api概览 Exte ...
- asp.net 增加404页面(非302、200)
由于项目改版,导致产生了许多死链,但是之前的404页面都是在Application_Error中Response.Redicet()到404页面,但是这样子是302跳转,导致搜索引擎认为网页不是死链而 ...
- 批量拼脚本神器-NimbleText
工作中要给产品经理写各种脚本拉数据.修改数据.这种批量拼sql,Excel当然是最合适的.但是苦于Excel玩不转,之前一直用Visual Studio Code的多焦点编辑功能,即便如此,这在同事眼 ...