0

我有一個數據結構是這樣的:如何讓孩子收集聚集在MongoDB中

{ 
    "_id": "order1", 
    "transactions": [ 
    { 
     "amount": 100, 
     "type": "payment" 
    }, 
    { 
     "amount": -10, 
     "type": "refund" 
    } 
    ] 
} 

我想量的總和是100 +( - 10)= 90。我是新來的MongoDB 。有人可以幫我寫查詢嗎?

回答

2

您可以使用集合與$unwind

.aggregate([ 
{$unwind:"$transactions"}, 
{$group: {_id:"$_id", total: {$sum: "$transactions.amount"}}} 
]) 
0
> db.aaa.aggregate([{$unwind:"$transactions"},{$group:{_id:null, total:{$sum:"$transactions.amount"}}}]) 
{ "_id" : null, "total" : 90 }