废话不说,上代码

 //链接数据库
MongoClient mongoClient = new MongoClient( "172.26.xxx.xxx" , 27017 ); MongoDatabase mongoDatabase =mongoClient.getDatabase("xxxx"); MongoCollection<Document> collection = mongoDatabase.getCollection("test_logs"); //加入查询条件
BasicDBObject query = new BasicDBObject();
//时间区间查询 记住如果想根据这种形式进行时间的区间查询 ,存储的时候 记得把字段存成字符串,就按yyyy-MM-dd HH:mm:ss 格式来
query.put("times", new BasicDBObject("$gte", "2018-06-02 12:20:00").append("$lte","2018-07-04 10:02:46"));
//模糊查询
Pattern pattern = Pattern.compile("^.*王.*$", Pattern.CASE_INSENSITIVE);
query.put("userName", pattern);
//精确查询
query.put("id", "11");
//skip 是分页查询,从第0条开始查10条数据。 Sorts是排序用的。有descending 和ascending
MongoCursor<Document> cursor = collection.find(query).sort(Sorts.orderBy(Sorts.descending("times"))).skip(0).limit(10).iterator();//
int unm=0;
try {
while (cursor.hasNext()) {
UserBehaviorLogs userBehaviorLogs = new UserBehaviorLogs();
//查询出的结果转换成jsonObject,然后进行封装或者直接返回给前端处理。我这是封装成对象了
JSONObject jsonObject = JSONObject.parseObject( cursor.next().toJson().toString());
userBehaviorLogs.setId(jsonObject.getString("id"));//id
userBehaviorLogs.setUserId(jsonObject.getString("userId"));//用户id
userBehaviorLogs.setUserName(jsonObject.getString("userName"));//用户名称
userBehaviorLogs.setParams(jsonObject.getString("params"));//参数
userBehaviorLogs.setException(jsonObject.getString("Exception"));//异常信息
userBehaviorLogs.setTimes(jsonObject.getString("times")+"");//创建时间
unm++;
System.out.println(unm+"="+userBehaviorLogs.getTimes()+"==="+userBehaviorLogs.getId());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
cursor.close();
}

其中时间时间区间查询 被坑了一把。后来直接改成字符串格式的了(yyyy-MM-dd HH:mm:ss)。

代码直接拿过去就能用。

 本博客是本人原创 未经允许不得转载 谢谢。

链接地址:http://www.cnblogs.com/richard-ju/p/L2018006.html

java mongodb 使用MongoCollection,BasicDBObject 条件查询的更多相关文章

  1. MongoDB 组合多个条件查询($and、$in、$gte、$lte)

    一,问题描述 数据格式: id, timeStamp,count 条件1:查询 某个时间段 内的数据: timeStamp BETWEEN startTime AND endTime.比如 timeS ...

  2. java web中的多条件查询

    转自:http://blog.csdn.net/xulu_258/article/details/46623317 所谓多条件查询即为用户输入想要查询的条件,然后根据用户输入的条件进行查询. 当用户有 ...

  3. MongoDB 字符串值长度条件查询

    在实际项目中常常会有根据字段值长度大小进行限制查询,例如查询商品名称过长或过短的商品信息,具体的实现方式可能有多种,在此记录常见的两种实现 使用 $where 查询(性能稍逊一些) 1 2 3 4 5 ...

  4. mongodb将时间作为条件查询

    db.stock_signal_single.find({"createtime": { "$lt" : ISODate("2019-04-08T00 ...

  5. elasticsearch组合多条件查询实现restful api以及java代码实现

    原文:http://blog.java1234.com/blog/articles/372.html elasticsearch组合多条件查询实现restful api以及java代码实现 实际开发中 ...

  6. java 实现mongoDB 增加,删除,修改,查看,多条件查询,聚合查询,分组查询(史上最全)

    首先idea创建一手springboot项目 引入如下依赖 <dependency> <groupId>org.mongodb</groupId> <arti ...

  7. java mongodb 基础系列---查询,排序,limit,$in,$or,输出为list,创建索引,$ne 非操作

    官方api教程:http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/#getting-started ...

  8. java MongoDB查询(二)复杂查询

    前言 在上篇<java MongoDB查询(一)简单查询>中我们简单了解了下查询,但是仅仅有那些查询是不够用的,还需要复杂的查询,这篇就这点进行叙述. 1.数据结构 集合:firstCol ...

  9. MongoDB入门---文档查询操作之条件查询&and查询&or查询

    经过前几天的学习之路,今天终于到了重头戏了.那就是文档查询操作.话不多说哈,直接看下语法: db.collection.find(query, projection) query :可选,使用查询操作 ...

随机推荐

  1. (43). Spring Boot动态数据源(多数据源自动切换)【从零开始学Spring Boot】

    在上一篇我们介绍了多数据源,但是我们会发现在实际中我们很少直接获取数据源对象进行操作,我们常用的是jdbcTemplate或者是jpa进行操作数据库.那么这一节我们将要介绍怎么进行多数据源动态切换.添 ...

  2. python在Linux中安装虚拟环境,区别python2和python3,分别安装模块

    安装虚拟环境的时候遇到的问题,解决的过程很闹心,在这里简单直接的分享出来,就是为了解决问题.  安装虚拟环境(须在联网状态下) $ sudo pip install virtualenv $ sudo ...

  3. 激活Windows

    额外的启动参数(键):/win=act – 在隐藏模式下运行程序,激活 Windows 并退出程序./ofs=act – 在隐藏模式下运行程序,激活 Office 并退出程序./wingvlk – 在 ...

  4. [bzoj1935][Shoi2007]Tree 园丁的烦恼 _树状数组

    Tree 园丁的烦恼 bzoj-1935 Shoi-2007 题目大意:给定平面上的$n$个点,$m$次查询矩形点个数. 注释:$1\le n,m\le 5\cdot 10^5$. 想法:静态二维数点 ...

  5. MYSQL 源码

    http://www.cnblogs.com/wingsless/tag/MySQL/

  6. FineReport实线java报表填报录入的效果图

    Java报表-固定资产(增删改) Java报表-集团財务报表 Java报表-简单自由填报 Java报表-客户跟踪数据回填 Java报表-客户关系复杂填报 Java报表-批量导入 Java报表-批量删除 ...

  7. SQL Server 2012内部原理及故障排除(专栏)

    PROFESSIONAL SQL SERVER® 2012 INTERNALS AND TROUBLESHOOTING一书(可从这里下载).认为内容非常不错.自己也想对SQL Server 2012有 ...

  8. 改动虚拟机镜像的rootpassword

    有时从网上下载的虚拟机镜像.没有rootpassword,必须通过秘钥登录.然后秘钥又须要麻烦的注入到里面去.想用,却无法登录.非常头痛.本文提供一种通过改动虚拟机镜像里面的/etc/shadow文件 ...

  9. 欧几里得 &amp; 拓展欧几里得算法 解说 (Euclid &amp; Extend- Euclid Algorithm)

    欧几里得& 拓展欧几里得(Euclid & Extend-Euclid) 欧几里得算法(Euclid) 背景: 欧几里德算法又称辗转相除法.用于计算两个正整数a.b的最大公约数. -- ...

  10. 蓝牙调试工具hcitool的使用实例【转】

    本文转载自:http://blog.csdn.net/kangear/article/details/37961769 这个工具据说是基于BlueZ的,但是Android4.2以后不再采用BlueZ取 ...