I have a question on merging arrays into one array in same field, but they are in different objects. I hope you will understand what I wanted after looking at the code below.
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
}
I wanted to merge "addresses" arrays in one array called "allAddresses", used $group, $concat, but failed…
"allAddresses" : [
"Raximova",
"Raximova",
"Raximova",
"Nazarbek",
"Oxunboboyeva",
"Toshkent",
"Chuqursoy",
"Chuqursoy",
"Chuqursoy",
"Chuqursoy",
"Chuqursoy",
"Chuqursoy",
"Toshkent",
"Oxangaron",
"Oxangaron",
"Oxangaron",
"Oxangaron",
"Oxangaron",
"Oxangaron",
"Jaloir"
]
How can I achieve that? Thanks in advance.
2
Answers
$group
– Group bynull
and addaddresses
intoaddresses
array. It returns a nested array.$project
– With$reduce
to flatten nested array.Sample Mongo Playground