我有一個一維數組(作爲MongoDB的查詢的輸出) 排序基於字段「數字」」轉換1D陣列以二維數組的NodeJS和MongoDB
results = [{
user: u1,
number: 1,
msg: m1
}, {
user: u2,
number: 2,
msg: m2
}, {
user: u3,
number: 3,
msg: m3
}, {
user: u2,
number: 4,
msg: m4
}, {
user: u1,
number: 5,
msg: m5
}]
我想轉換此數組到二維數組,如下所示。請注意,嵌套陣列是由具有2環路基於「數量」字段
newResults = [{
user: u1,
msg: [{nmsg: m1, number: 1}, {nmsg: m5, number: 5}]
}, {
user: u2,
msg: [{nmsg: m2, number: 2 }, {nmsg: m4, number: 4}]
}, {
user: u3,
msg: [{nmsg: m3, number 3}]
}
}]
我能做到這一點排序,然而,2 for循環似乎低效的,因爲數組可以增長到非常大的尺寸。
有沒有辦法,可能是使用庫或直接從mongoDB中實現相同的結果?
此外,MongoDB中的結構非常簡單
爲
{
user
number
msg
}
感謝
感謝弗拉基米爾,我會盡量今晚,讓你知道。感謝您的快速響應。 – pkpk
這個工程,我也認爲聚合可能是一個更好的解決方案相比,lodash解決方案。所有的處理和計算都將在Mongo服務器上,而不是在主服務器上,因爲記錄可能很大。 – pkpk