我有一個關于將陣列合并到同一欄位中的一個陣列的問題,但它們位于不同的物件中。我希望您在查看下面的代碼后會明白我想要什么。
db.addresses.find().pretty()
{
"_id" : ObjectId("62a72be40c7db0af0b79d721"),
"rollingStockNumber" : "922698325786980137200129101715063039706000000",
"addresses" : [
"Raximova",
"Raximova",
"Raximova",
"Nazarbek",
"Oxunboboyeva",
],
"__v" : 0
}
{
"_id" : ObjectId("62a8727978c18925711d40f2"),
"rollingStockNumber" : "922698012567076507200129101700057022060000000",
"addresses" : [
"Toshkent",
"Chuqursoy",
"Chuqursoy",
"Chuqursoy",
"Chuqursoy",
"Chuqursoy",
"Chuqursoy",
"Toshkent",
],
"__v" : 0
}
{
"_id" : ObjectId("62a878d778c18925711d40f7"),
"rollingStockNumber" : "922720020326980977200102111555058048630000000",
"addresses" : [
"Oxangaron",
"Oxangaron",
"Oxangaron",
"Oxangaron",
"Oxangaron",
"Oxangaron",
"Jaloir"
],
"__v" : 0
}
我想將“地址”陣列合并到一個名為“allAddresses”的陣列中,使用了 $group、$concat,但失敗了......
"allAddresses" : [
"Raximova",
"Raximova",
"Raximova",
"Nazarbek",
"Oxunboboyeva",
"Toshkent",
"Chuqursoy",
"Chuqursoy",
"Chuqursoy",
"Chuqursoy",
"Chuqursoy",
"Chuqursoy",
"Toshkent",
"Oxangaron",
"Oxangaron",
"Oxangaron",
"Oxangaron",
"Oxangaron",
"Oxangaron",
"Jaloir"
]
我怎樣才能做到這一點?提前致謝。
uj5u.com熱心網友回復:
$group- 分組null并添加addresses到addresses陣列中。它回傳一個嵌套陣列。$project-$reduce用于展平嵌套陣列。
db.collection.aggregate([
{
$group: {
_id: null,
addresses: {
$push: "$addresses"
}
}
},
{
$project: {
allAddresses: {
$reduce: {
input: "$addresses",
initialValue: [],
in: {
"$concatArrays": [
"$$value",
"$$this"
]
}
}
}
}
}
])
示例 Mongo Playground
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/491359.html
