Update Arrays Element in MongoDB: Updating single element in Array data type in MongoDB using the shell.
I have 2 documents in MongoDB like below
/* 1 */ { "_id" : ObjectId("5b594b462fe5553ce8071c27"), "grades" : [100, 200, 300] } /* 2 */ { "_id" : ObjectId("5b594b712fe5553ce8071c28"), "grades" : [400, 500, 100] }
now I want to update the grades value of 100 to 1000. Below is the Query for updating a single element in Array.
db.dummy_collection.update( { "grades": 100 }, { $set: { "grades.$" : 1000 } }, { multi: true } );
In the above Query, dummy_collection is the Collection name and it will replace 100 to 1000 from all documents in Collection
if we want to Update element in a nested array
/* 1 */ { "_id" : ObjectId("5b594b462fe5553ce8071c27"), "allGrades" : { "grade" : [90,75, 60 ] } }, /* 2 */ { "_id" : ObjectId("5b594b712fe5553ce8071c28"), "allGrades" : { "grade" : [95,75, 90 ] } }
Now I want to update the 75 in grade array below will be the query
db.dummy_collection.update( { "allGrades.grade": 75}, { $set: { "allGrades.grade.$" : 80 } }, { multi: true } );
In the above Query, by using dotted Notation we are mentioning the MongoDB to update the array which is under allGrades where grade array value is 75 to 80
Also Read: How to Rename/Modify JSON field keys in Mongo Document