mongodb - 带有匹配查询的 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中进行任何更改才能使其正常工作?
解决方案
推荐阅读
- python - Pygame:如何在没有按键时使精灵朝向相同的方向
- azure-devops-server-2019 - 如何设置 Azure DevOps Server Jira 服务连接?
- python - Netlogo if 和 while 语句,确定补丁颜色为真
- python - 测试和模拟使用 async with 语句的异步代码
- r - 如果 A 的值低于 B 的值,如何用 NA 替换变量 A 和 B 中的值
- java - 如何在 Java 中创建一个不规则形状的二维数组
- python - 使用 RTmidi python 控制 Synthesia VJ 程序
- javascript - 如何在webview的js中从java调用变量
- flask - 在 Flask 中是否可以使用 create_app() 模式导入视图而不使用蓝图?
- mysql - 计算两个日期之间的值