我從貓鼬查詢結果中得到:
{
"store": [
{
"items": [
"A1",
"A2"
]
},
{
"items": [
"A3",
"A4"
]
},
{
"items": [
"B1",
"B2"
]
},
{
"items": [
"B3",
"B4"
]
},
{
"items": [
"C8",
"C9",
"C10"
]
}
]
}
我需要這個:["A1","A2","A3","A4","B1","B2","B3","B4","C8","C9",C10] 有沒有在不使用 foreach 回圈的情況下執行此操作的方法,因為我的陣列會很長而且很耗時。
uj5u.com熱心網友回復:
let data = {
'store': [
{
'items': [
'A1',
'A2'
]
},
{
'items': [
'A3',
'A4'
]
},
{
'items': [
'B1',
'B2'
]
},
{
'items': [
'B3',
'B4'
]
},
{
'items': [
'C8',
'C9',
'C10'
]
}
]
}
let result = data['store'].flatMap(value => value.items)
console.log(result)
uj5u.com熱心網友回復:
為了進一步提高性能,您可以直接使用聚合來利用在資料庫中執行速度更快的 C :
我假設您的資料庫檔案如下所示:

如果您使用這樣的聚合:
let result = Model.aggregate([
{'$match':{'_id': "YourDesiredId"}}, // Add this line in case you want to match a specific document
{
'$unwind': {
'path': '$store'
}
}, {
'$unwind': {
'path': '$store.items'
}
}, {
'$group': {
'_id': '$_id',
'items': {
'$push': '$store.items'
}
}
}, {
'$project': {
'_id': 0
}
}
])
您的輸出將是:
items:["A1","A2","A3","A4","B1","B2","B3","B4","C8","C9","C10"]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/376545.html
標籤:javascript 数组 猫鼬
