我的 MongoDB 中有一個集合:
{ userId: 1234, name: 'Mike' }
{ userId: 1235, name: 'John' }
...
我想得到表格的結果
dict[userId] = document
換句話說,我想要一個結果,它是一個字典,其中userId是鍵,檔案的其余部分是值。
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
您可以使用它$arrayToObject來執行此操作,您只需要將其格式化為k,v之前的陣列。
目前尚不清楚您是否希望所有檔案都使用一個字典,或者每個檔案都采用字典格式。我猜你想要第一個選項,但我同時顯示:
一個包含所有資料的字典*,需要一個$group(也格式化資料):
db.collection.aggregate([
{
$group: {
_id: null,
data: {$push: {k: {$toString: "$userId"}, v: "$$ROOT"}}
}
},
{
$project: {data: {$arrayToObject: "$data"}}
},
{
$replaceRoot: {newRoot: "$data"}
}
])
看看它在操場上的例子是如何作業的 - 一個字典
*請注意,在此選項中,所有資料都插入到一個檔案中,并且檔案作為限制大小。
字典格式:如果您想將所有檔案作為不同的結果,但使用字典格式,只需將聚合的第一步替換為:
{
$project: {
data: [{k: {$toString: "$userId"}, v: "$$ROOT"}],
_id: 0
}
},
看看它在操場上的例子是如何作業的 - dict per document
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/489437.html
