簡體   English   中英

如何將元素數組轉換為 MongoDB 投影中的對象

[英]How to convert an array of elements to an object in a MongoDB projection

我嘗試使用$project$arrayToObject但我不知道它是如何工作的。 我的 MongoDB 查詢返回一個對象數組:

[{ amounts: [ 10, 20, 30 ], id: "0x3c93" }, { amounts: [ 0, 0, 100 ], id: "0xee10" }]

我想將結果按“id”作為鍵和“金額”作為值進行分組:

{"0x3c93": [ 10, 20, 30 ], "0xee10": [ 0, 0, 100 ]}

實現這個投影的正確表達是什么? 我正在使用 node.js 驅動程序。

一種選擇是在使用$arrayToObject之前將它們$group到一個數組中並將它們格式化為kv

db.collection.aggregate([
  {$group: {_id: 0, data: {$push: {k: "$id", v: "$amounts"}}}},
  {$project: {_id: 0, data: {$arrayToObject: "$data"}}},
  {$replaceRoot: {newRoot: "$data"}}
])

看看它在操場上的例子是如何工作的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM