Lets say I have the following document:
{name: 'myDoc', nestedDoc: {a: 1, b: 2, c: 3}}
And I would like to merge with the nestedDoc a new object:
{b: 20, c:30, d:40}
So the resulting object would be:
{name: 'myDoc', nestedDoc: {a: 1, b: 20, c: 30, d: 40}}
How can I go about doing this in a single query? I feel like I need multiple $set calls however object property names must be unique. In other words, I wish I could do the following:
db.myCollection.update({name: 'myDoc', nestedDoc: {$set: {b: 20}, $set: {c: 30}, $set: {d: 40}});
Some extra details are that the MongoDB version is 1.8.2 and I am using the NodeJS node-native driver.
To update multiple elements, use []. The[] is an all positional operator indicating that the update operator should modify all elements in the specified array field.
To update nested properties in a state object in React: Pass a function to setState to get access to the current state object. Use the spread syntax (...) to create a shallow copy of the object and the nested properties. Override the properties you need to update.
Update Nested Arrays in Conjunction with $[]The $[<identifier>] filtered positional operator, in conjunction with the $[] all positional operator, can be used to update nested arrays. The following updates the values that are greater than or equal to 8 in the nested grades. questions array if the associated grades.
You can update by using the following:
db.myCollection.update({
name: 'mydoc'
}, {
$set: {
'nestedDoc.b': 20,
'nestedDoc.c': 30,
'nestedDoc.d': 40
}
})
Here is more information about update command:
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