如何连接mongodb数据库,并且从中查找数据

最近在需要从mongodb中查找出数据,但是连接mongodb也是刚刚接触到,所有如何连接mongdb然后从中查找出数据

之前从https://www.cnblogs.com/minsons/articles/7026600.html博客上面学习到了一些mongodb入门的一些知识,

        ServerAddress serverAddress = new ServerAddress(dsc.getServerName(),27017);  
        List<ServerAddress> addrs = new ArrayList<ServerAddress>();  
        addrs.add(serverAddress);  
          
        //MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码  
        MongoCredential credential = MongoCredential.createScramSha1Credential(dsc.getUsername(), dsc.getDbName(), dsc.getPassword().toCharArray());  
        List<MongoCredential> credentials = new ArrayList<MongoCredential>();  
        credentials.add(credential);  
        //通过连接认证获取MongoDB连接  
        mongoClient = new MongoClient(addrs,credentials);

这个是有密码的mongodb连接的方式,也就是我们可以通过这种方式成功的链接到mongodb数据库,链接之后我们可以进行一一些简单的查询,上面的那个博客中的内容介绍的也很详细,现在我们做的是简单的,也就是做一些简单的分组查询的操作,如何进行分组

我们先从简单的查找开始,我们根据上面对数据库的链接从数据库中获取到一个集合这个集合

    MongoDatabase db = mongoClient.getDatabase(dsc.getDbName());
        MongoCollection<Document> hobby = db.getCollection("rialI");
获取到这个集合之后,我们需要做的事情是对这个集合进行操作,比如我们首先来做一个查找:

   Document filter = new Document().append("$regex","411456");
        Document query1=new Document("idcard",filter);
        query1.append("is_right", 0);
        long num=hobby.count(query1);
其实上面的查询语句相当于:

db.getCollection("wdgconllection").find({"idcard":{$regex:411456},"is_right":0}).count()

上面的代码中的查找语句相当于我们在数据库中执行上面的查找语句

那么一个简单的查找我们可以做到了,现在我们需要做的事情是在进行分组查找:

   Document query0 = new Document().append("$regex","320700");
        Document query1=new Document("certawarddeptcode",query0);
        query1.append("is_history", 0);
        Document filter=new Document();
        filter.append("$match", query1);
        MongoDatabase db = mongoClient.getDatabase(dsc.getDbName());
        MongoCollection<Document> hobby = db.getCollection("AuditRsShareMaterialI");
        AggregateIterable<Document> aggregate = hobby.aggregate(Arrays.asList(
                filter,

                new Document("$group", new Document("_id", "$certawarddeptcode").append("value", new Document("$sum", 1))),
                new Document("$sort", new Document("value", -1)))
  
           );
        int i=0;
        JSONArray json_arr=new JSONArray();
        for (Document document : aggregate) {
           JSONObject obj= new JSONObject().parseObject(document.toJson().toString());
           obj.put("name", findNameByCode(obj.get("_id").toString()));
           json_arr.add(obj);
           i++;
           if(i>=10){
               break;
           }
        }
        return json_arr;
上面便是我们从mongodb中进行分组查找出来结果并且返存储到一个json中,然后返回这个json也就是我们最后想要的结果了

希望对你有所帮助




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值