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: 103 are modified; other records remain unchanged.
  • Use updateOne() or updateMany() 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.

Updated on: 2026-03-15T02:23:05+05:30

502 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements