首页 > 解决方案 > 带有匹配查询的 mongo 组不适用于 java

问题描述

我在 robo 3T 控制台中有以下查询。

db.metrics.aggregate([
{'$match':{'status':'SUCCESS'}}, 
{'$group':{ _id:'$bapiName',count:{$sum:1}}}

])

但是当我用java执行它时,

    MongoCollection collection =db.getCollection();
    List<Bson> pipeLine = new ArrayList<Bson>();
    pipeLine.add(Document.parse("{'$match':{'status':'SUCCESS'}}"));        
    pipeLine.add(Document.parse("{'$group' : {_id: {bapiName:'$bapiName',status:'$status'}, count:{$sum:1}}}"));
    Iterator iterator = collection.aggregate(query.getPipeline()).iterator();
        while( iterator.hasNext()) {
            Object object = iterator.next();
            resultList.add((Document)object);
            System.out.println(" class "+object.getClass()+" data "+object);

        }

我没有得到结果。迭代器为空。需要在java中进行任何更改才能使其正常工作?

标签: mongodbaggregation

解决方案


推荐阅读