我有一個集合ledger,具有以下檔案格式:
{
_id: ###,
month: 202112,
name: 'XXXXXXXXXXXX',
gross_revenue: 482.28
}
月份實際上包含年和月,YYYYMM。每個“月”有多個條目。我想要做的是將這些年來的總收入值相加。所以用一個月的 $substr 得到年份,然后總結 Gross_revenue。理想情況下,結果如下所示:
2019: 99999.99,
2020: 88888.88,
.
.
我可以匯總給定月份,并且可以獲得 substr,但無法弄清楚如何將它們組合起來按年匯總。
db.ledger.aggregate([ { $match: {month: 202111} },{ $group: { _id: null, total: { $sum: "$gross_revenue" } } } ] )
db.ledger.aggregate([{$project: { year: {$substr:["$month", 0,4]}}}])
任何幫助表示贊賞。
uj5u.com熱心網友回復:
詢問
- 按年分組(我們可以使用任何聚合運算子進行分組)
- 替換 root 以產生預期的輸出
測驗代碼在這里
aggregate(
[{"$group":
{"_id":{"$substrCP":["$month", 0, 4]},
"sum":{"$sum":"$gross_revenue"}}},
{"$replaceRoot":
{"newRoot":{"$arrayToObject":[[{"k":"$_id", "v":"$sum"}]]}}}])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/406689.html
標籤:
