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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 华为云服务器手机密码找回,忘记华为账号密码怎么办?两招就能帮你解决

    华为云服务器手机密码找回,忘记华为账号密码怎么办?两招就能帮你解决每天跟我们生活息息相关的账号密码,实在是太多太多了。银行卡密码、支付密码、游戏账号密码、各种APP账号密码等等……账号密码太多,也导致了我们有时候会忘记某些账号密码。那么问题来了,如果忘记了华为账号密码,怎么破?别担心,官维君教大家两招如何找回密码,一起来看看吧!第一招:登录华为云服务官网找回密码登录华为云服务官网☛https://cloud.huawei.com/,点击“忘记密码”,然后根据提示…

  • pytest报错_git撤销本地提交

    pytest报错_git撤销本地提交前言我们每天写完自动化用例后都会提交到git仓库,随着用例的增多,为了保证仓库代码的干净,当有用例新增的时候,我们希望只运行新增的未提交git仓库的用例。pytest-picked插件可以

  • 博客日记-澄清自己「建议收藏」

    博客日记-澄清自己「建议收藏」关于我的博客https://blog.csdn.net/csdnhsh/article/details/91410753#comments_17668907,这是一些csdn朋友对我的误解,说我的文章不是原创,我不得已出来澄清下:那个jt_sinlio说的其它文章,还有哪个账号已失效的留言,说要我拿出证据,我想了想,为了csdn的声誉,就简约证明下自己。哪个jt_sinlio说的其它网站的文章,打开一看发表时间是2013年8月29日19:28分,比我自己大号发表过的,现在设置私密的要晚几个

  • 小程序生成普通二维码_注册一个小程序

    小程序生成普通二维码_注册一个小程序uniapp生成二维码`参考了https://blog.csdn.net/lemontealin/article/details/104437584这篇文章并做了修改,要想实现二维码的生成的话是需要引用相应插件的,这个插件的作者是echo,echo写了整个ThorUI组件,我个人很佩服他,喜欢他的可以去ThorUI网站看看,学习一下。1)首先下载你需要下载weapp-qrcode.js(百度网盘下载链接:链接:https://pan.baidu.com/s/1VXhq3ZjxmDcH1tFujK

    2022年10月31日
  • 圆柱体积怎么算立方公式_圆柱怎么算立方?

    圆柱体积怎么算立方公式_圆柱怎么算立方?展开全部圆柱体的立方就是求圆柱体的体积。公式为:1、圆柱定义在同一个平面内有一条定直线和一条动线e69da5e887aa3231313335323631343130323136353331333363396363,当这个平面绕着这条定直线旋转一周时,这条动线所成的面叫做旋转面,这条定直线叫做旋转面的轴,这条动线叫做旋转面的母线。如果母线是和轴平行的一条直线,那么所生成的旋转面叫做圆柱面。如果用垂直…

  • resnet网络结构示意图_resnet50网络结构详解

    resnet网络结构示意图_resnet50网络结构详解代码importtorchfromtorchimportnnimporttorchvisiondevice=torch.device(“cuda”iftorch.cuda.is_available()else”cpu”)resnet=torchvision.models.resnet101(pretrained=True)#pretrainedImageNetResNet-101print(resnet)输出:ResNet((conv1):Con

发表回复

您的电子邮箱地址不会被公开。

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