Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
Conditional update depending on field matched in MongoDB
To perform a conditional update in MongoDB, use the update() method with a query condition that matches specific field values, then apply $set to modify the target field. Only documents matching the condition will be updated.
Syntax
db.collection.update(
{ "fieldName": "matchValue" },
{ $set: { "targetField": "newValue" } }
);
Sample Data
db.demo150.insertMany([
{ "StudentId": 101, "StudentName": "Chris", "StudentMarks": 35 },
{ "StudentId": 102, "StudentName": "Chris", "StudentMarks": 55 },
{ "StudentId": 103, "StudentName": "David", "StudentMarks": 34 },
{ "StudentId": 104, "StudentName": "Chris", "StudentMarks": 38 }
]);
{
"acknowledged": true,
"insertedIds": [
ObjectId("5e350dcdfdf09dd6d08539d3"),
ObjectId("5e350dcefdf09dd6d08539d4"),
ObjectId("5e350dcffdf09dd6d08539d5"),
ObjectId("5e350dd0fdf09dd6d08539d6")
]
}
Display Original Data
db.demo150.find();
{ "_id": ObjectId("5e350dcdfdf09dd6d08539d3"), "StudentId": 101, "StudentName": "Chris", "StudentMarks": 35 }
{ "_id": ObjectId("5e350dcefdf09dd6d08539d4"), "StudentId": 102, "StudentName": "Chris", "StudentMarks": 55 }
{ "_id": ObjectId("5e350dcffdf09dd6d08539d5"), "StudentId": 103, "StudentName": "David", "StudentMarks": 34 }
{ "_id": ObjectId("5e350dd0fdf09dd6d08539d6"), "StudentId": 104, "StudentName": "Chris", "StudentMarks": 38 }
Example: Update Student with ID 103
Update StudentMarks to 97 where StudentId equals 103 −
db.demo150.update(
{ "StudentId": 103 },
{ $set: { "StudentMarks": 97 } }
);
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
Verify Result
db.demo150.find();
{ "_id": ObjectId("5e350dcdfdf09dd6d08539d3"), "StudentId": 101, "StudentName": "Chris", "StudentMarks": 35 }
{ "_id": ObjectId("5e350dcefdf09dd6d08539d4"), "StudentId": 102, "StudentName": "Chris", "StudentMarks": 55 }
{ "_id": ObjectId("5e350dcffdf09dd6d08539d5"), "StudentId": 103, "StudentName": "David", "StudentMarks": 97 }
{ "_id": ObjectId("5e350dd0fdf09dd6d08539d6"), "StudentId": 104, "StudentName": "Chris", "StudentMarks": 38 }
Key Points
- The first parameter defines the match condition that identifies which documents to update.
- Only documents where
StudentId: 103are modified; other records remain unchanged. - Use
updateOne()orupdateMany()for more explicit control over update scope.
Conclusion
Conditional updates in MongoDB match documents based on query criteria before applying changes. The $set operator modifies only the specified fields while preserving the rest of the document structure.
Advertisements
