MongoDB 看起来像:
{ "_id" : ObjectId("503d5024ff9038cdbfcc9da4"),
"employee" : 61,
"department" : "Sales",
"amount" : 77,
"type" : "airfare"
}
在 mongoDB 控制台中,我可以通过两个参数(departments
和 type
)进行聚合:
db.workers.aggregate(]{$group:{_id:{部门:"$department",type:"$type"},amount_sum:{$sum:"$amount"}}}] )
用java怎么做?
最佳答案
你已经在 shell 中运行了这个,问题是如何将其转换为 Java。
db.workers.aggregate([{$group:{_id:{department:"$department",type:"$type"},
amount_sum:{$sum:"$amount"}}}])
这与 the example in Java tutorial for MongoDB. 非常相似
唯一的区别是,它们对 $group
的 _id
部分使用简单的 DBObject,您需要创建一个文档来用作您的 _id
.替换行:
DBObject groupFields = new BasicDBObject( "_id", "$department");
与:
DBObject docFields = new BasicDBObject("department", "$department");
docFields.put("type", "$type");
DBObject groupFields = new BasicDBObject( "_id", docFields);
你应该已经准备好了。
关于java - mongoDB中_id如何聚合由两个元素组成(在Java中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17122089/