java mongodb 使用MongoCollection,BasicDBObject 条件查询

java mongodb 使用MongoCollection,BasicDBObject 条件查询

废话不说,上代码

 //链接数据库
        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

 

转载于:https://www.cnblogs.com/richard-ju/p/L2018006.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101577.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 5个常用的MySQL数据库管理工具_sql数据库管理工具

    5个常用的MySQL数据库管理工具_sql数据库管理工具工欲善其事,必先利其器。几乎每个开发人员都有最钟爱的MySQL管理工具,它帮助开发人员在许多方面支持包括PostgreSQL,MySQL,SQLite,Redis,MongoDB等在内的多种数据库;提供各种最新的特性,包括触发器、事件、视图、存储过程和外键,支持导入、数据备份、对象结构等多种功能。这篇文章收集了15款最佳的MySQL管理工具和应用软件,帮助你轻松快速完成工作。您可能感兴…

    2022年8月23日
    27
  • pki体系包括哪些_十大育人体系是指什么

    pki体系包括哪些_十大育人体系是指什么PKI(公钥设施基础,PublicKeyInfrastructure)是一种标准化的密钥管理平台,能为网络应用提供加密和数字签名,以及密钥和证书管理体系的服务。在几乎所有介绍PKI的书籍或文章上,我们都能看到类似于这样的一句话:使用PKI就能保证网络应用的安全。那么,PKI体系的安全性到底怎样呢?就让我们来逐一列出PKI体系的十大安全隐患:风险1:证书持有者能被信任吗?在PKI中,

    2022年8月22日
    9
  • css 去色_css按钮点击改变颜色

    css 去色_css按钮点击改变颜色有这么一个样式,可以在你实现无色和加色之间游刃有余。网站设计师在设计网页时,有时将一块图片设计成灰色,鼠标移上去,图片就有颜色。一般的逻辑是做两张图片,然后在鼠标上做图片切换事件。当然这种方法可以完美是实现, 不过有个小瑕疵,就是你要切一倍的图片(有色+无色)。下面介绍样式实现,可以减少一倍量的工作哦。//HTMLCSS.grayscaleimg{filter:g

    2022年10月6日
    3
  • 数据库置疑的解决方法_列族数据库

    数据库置疑的解决方法_列族数据库数据库置疑处理文档修订记录日期Date修订版本RevisionVersion修改描述ChangeDescription作者Author2010-04-261.0格式化UltraSQL目录一、知识点简介1.DBCC中的CHECKDB命令2.重置置疑状态3.sp_add_log_file_reco…

    2022年8月20日
    8
  • a星算法详解_matlab优化算法

    a星算法详解_matlab优化算法概述基于上一篇文章提到的DFS算法和BFS算法A星算法属于图这种数据结构的搜索算法,对比于树的遍历搜索,需要考虑到的问题是:同一个节点的重复访问,所以需要对于已经访问过的节点进行标记。曼哈顿距离:在几何度量空间中,用以标明两个点在标准坐标系上的绝对轴距总和。图1中绿色代表欧氏距离(直线距离),蓝色和黄色代表等价的曼哈顿距离。d(i,j)=|Xi-Xj|+|Yi-…

    2022年9月28日
    4
  • 有了IDEA中的这款插件,流程图、类图轻松搞定,简直神器!

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 总有童鞋问,这个流程图图怎么绘制的,这个UML类图用什么工具做的等等,今天给大家推荐一款idea插件PlantUml…

    2021年6月24日
    260

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号