This is what we are looking to update
db.getCollection('location').find({"correlationId.correlation":"MN09"})
Result:
{
"_id" : ObjectId("4523452345235234"),
"correlationId" : {
"correlation" : "MN09"
},
"sortSequence" : 120,
"code" : "MN09",
"description" : "Manhattan 9",
"legacyZone" : "West",
"locationTypeId" : {
"correlation" : "DISTRICT"
},
"garageCode" : "MW09G",
"servicesSelf" : true,
"servicedBy" : [
{
"correlation" : "MN12"
}
],
"workUnit" : {
"correlation" : "MNBO"
}
}

we would like to do a find and update on
"servicedBy" : [
{
"correlation" : "MN12"
}
]
using
db.getCollection('location').update(
{"correlationId.correlation":"MN09"},
{ $set : { "servicedBy.$[elem].correlation" : "MN04"}},
{ arrayFilters: [{ "elem.correlation" : {$eq: "MN12"} }], multi:true}
)


now we query again

db.getCollection('location').find({"correlationId.correlation":"MN09"})
Result:
{
"_id" : ObjectId("4523452345235234"),
"correlationId" : {
"correlation" : "MN09"
},
"sortSequence" : 120,
"code" : "MN09",
"description" : "Manhattan 9",
"legacyZone" : "West",
"locationTypeId" : {
"correlation" : "DISTRICT"
},
"garageCode" : "MW09G",
"servicesSelf" : true,
"servicedBy" : [
{
"correlation" : "MN04"
}
],
"workUnit" : {
"correlation" : "MNBO"
}
}


ref:
https://docs.mongodb.com/manual/reference/operator/update/positional-filtered/#up._S_[%3Cidentifier%3E]

Comments

Popular posts from this blog

MongoDB Ops Manager Basic Installation and Configuration

Oracle Goldengate Extract, Pump, and Replicat

Oracle Goldengate Extract and Replicat within same DB from one schema to another plus some issues and fixes