0
我已经开始玩MongoDB和聚合框架。我试图计算的是费用总额(333)和生存总价值(777)。任何想法如何做到这一点?我一直在玩$ unwind,$ group,$项目,但没有得到任何好处。MongoDB和聚合函数
{
"_id" : ObjectId("5442a4afc25282ab96463126"),
"expenses" : [
{
"name" : "a",
"expenseValue" : 111
},
{
"name" : "b",
"expenseValue" : 222
}
],
"subsistence" : [
{
"name" : "a",
"valueSubsistence" : 333
},
{
"name" : "b",
"subsistenceValue" : 444
}
]
}
我得到了工作,但不得不解雇两个查询。一个放松的费用,另外一个放松生活
db.test.aggregate([{$unwind:"$expenses"},{$group:{_id:null,totalExpenses:{$sum:"$expenses.expenseValue"}}}])
{
"result" : [
{
"_id" : null,
"totalExpenses" : 333
}
],
"ok" : 1
}
> db.test.aggregate([{$unwind:"$subsistence"},{$group:{_id:null,totalSubsistence:{$sum:"$subsistence.subsistenceValue"}}}])
{
"result" : [
{
"_id" : null,
"totalSubsistence" : 777
}
],
"ok" : 1
}
的事情是我希望得到的是在一个查询完成。当我放松一气呵成两个数组我越来越下方,并从那里我得到无处到目前为止
db.test.aggregate([{$unwind:"$expenses"},{$unwind:"$subsistence"}])
{
"result" : [
{
"_id" : ObjectId("5442a4afc25282ab96463126"),
"expenses" : {
"name" : "a",
"valueExpenses" : 111
},
"subsistence" : {
"name" : "a",
"valueSubsistence" : 555
}
},
{
"_id" : ObjectId("5442a4afc25282ab96463126"),
"expenses" : {
"name" : "a",
"valueExpenses" : 111
},
"subsistence" : {
"name" : "b",
"valueSubsistence" : 444
}
},
{
"_id" : ObjectId("5442a4afc25282ab96463126"),
"expenses" : {
"name" : "b",
"valueExpenses" : 111
},
"subsistence" : {
"name" : "a",
"valueSubsistence" : 333
}
},
{
"_id" : ObjectId("5442a4afc25282ab96463126"),
"expenses" : {
"name" : "b",
"valueExpenses" : 222
},
"subsistence" : {
"name" : "b",
"valueSubsistence" : 444
}
}
],
"ok" : 1
}