How to update some of the nested objects found by thair Id in MongoDB.
In the below case, only the first Item will be updated!
Update all nested objects in updateMany.
"Parent":[{
"Child": [{
"_id": 5f26fad5b34a304dfc1dd16a,
"isActive": false,
}, {
"_id": 5f26fad5b34a304dfc1dd16c,
"isActive": false,
}, {
"_id": 5f2705281b42ea2de8b7c9e2,
"isActive": false,
}
],
"name": "Paretn1"
},
]
parent.updateMany(
{
"child._id": { $in: [ObjectId('5f26fad5b34a304dfc1dd16a'), ObjectId('5f26fad5b34a304dfc1dd16c')
]}
},
{ $set: { "child.$.isActive": true } },
{ multi: true },
() => {
console.log('done')
}
);
You can do as below
parent.updateMany(
{
"child._id": { $in:
[ObjectId('5f26fad5b34a304dfc1dd16a'),
ObjectId('5f26fad5b34a304dfc1dd16c')
]}
},
{ $set: { "child.$[element].isActive": true } },
{ "arrayFilters": [{ "elem._id": {'$in' :[
ObjectId('5f26fad5b34a304dfc1dd16a'),
ObjectId('5f26fad5b34a304dfc1dd16c')] } }], "multi": true },
() => {
console.log('done')
}
);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With