我有一個 MongoDB 集合,我已設法使用aggregation管道對其進行處理以產生以下結果:
[
{
_id: 'Complex Numbers',
count: 2
},
{ _id: 'Calculus',
count: 1
}
]
但我的目標是這樣的結果:
{
'Complex Numbers': 2,
'Calculus': 1
}
有沒有辦法實作這一目標?
uj5u.com熱心網友回復:
詢問
- 要轉換為
{}我們需要像[[k1 v1] ...]OR 之類的東西[{"k" "..." :v "..."}] - 第一階段
- 將每個檔案轉換為
[{"k" ".." , "v" ".."}] - 然后
arrayToObject - 并替換根
- 將每個檔案轉換為
- 所以我們有每個檔案
"Complex Numbers": 2 - 該組用于將所有這些檔案合并為 1 個檔案
- 然后用那個檔案替換根
測驗代碼在這里
aggregate(
[{"$replaceRoot":
{"newRoot": {"$arrayToObject": [[{"k": "$_id", "v": "$count"}]]}}},
{"$group": {"_id": null, "data": {"$mergeObjects": "$$ROOT"}}},
{"$replaceRoot": {"newRoot": "$data"}}])
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/372924.html
標籤:MongoDB
