我有2个mongo数据库集合,我想加入它们,这对我使用查找工作正常 但在我查看之前,我想在一个带有条件的集合中进行分组和求和
Ex:收集A. ID, AMT, TYPE(1,2)
收集B. ID , TAMT1, TAMT2,
现在收集A. if(TYPE == 1)然后Sum(amt)为TAMT1 if(TYPE == 2)Sum(AMT)为TAMT2 group by ID,然后与Collection B进行比较
任何人都可以提示/指导我如何做到这一点
答案 0 :(得分:0)
我们可以使用聚合管道运算符$group和$sum 根据类型总结金额
让集合“a”具有以下文件
imageView.contentMode = .scaleAspectFill
Mongo Shell查询根据类型求和文档是
{ "_id" : ObjectId("59de286a5d9132bd0bf3e870"), "amt" : 100, "type" : 1 }
{ "_id" : ObjectId("59de286a5d9132bd0bf3e871"), "amt" : 200, "type" : 1 }
{ "_id" : ObjectId("59de286a5d9132bd0bf3e872"), "amt" : 1000, "type" : 2 }
{ "_id" : ObjectId("59de286a5d9132bd0bf3e873"), "amt" : 10000, "type" : 1 }
{ "_id" : ObjectId("59de286a5d9132bd0bf3e874"), "amt" : 1000, "type" : 2 }
{ "_id" : ObjectId("59de286a5d9132bd0bf3e875"), "amt" : 5000, "type" : 2 }
我们的样本集合上面的聚合查询的结果是
db.a.aggregate([{$group:{_id:"$type", total:{$sum:"$amt"}}}])
请注意,您必须将shell查询转换为Java查询