Ariel_Ariel
(Ariel Ariel)
#1
I want to make a migration to update all old data. Old data has this structure:
error: [
"error1",
"error2",
"error3",
]
I would like to change to:
error: [
{ message: "error1", status: 400 },
{ message: "error2", status: 400 },
{ message: "error3", status: 400 },
]
Could you give me any hints or pointers to make the query? Thanks
Takis
(Takis )
#2
Hello,
You can use $map
and change each member to a document.
Bellow its the aggregation pipeline query.
Data in
[{"error": [
"error1",
"error2",
"error3",
]}]
Query
aggregate(
[ {
"$set" : {
"error" : {
"$map" : {
"input" : "$error",
"in" : {
"message" : "$$this",
"status" : 400
}
}
}
}
} ]
)
Data out
[{
"error": [
{
"message": "error1",
"status": 400
},
{
"message": "error2",
"status": 400
},
{
"message": "error3",
"status": 400
}
]
}]
1 Like
Ariel_Ariel
(Ariel Ariel)
#3
thanks, it works. although i change it to updateMany instead of aggregate
Takis
(Takis )
#4
oh ok good, i didn’t see its for update, but update pipeline would work, MongoDB documentation is very good with examples also.
system
(system)
Closed
#5
This topic was automatically closed 5 days after the last reply. New replies are no longer allowed.