Skip to main content

How does replaceOne() differ from updateOne()?

The difference is that updateOne() only changes the specified fields, while replaceOne() fully replaces the document with a new one.

In short:

MethodWhat it does
updateOne()Updates the chosen fields using operators ($set, $inc, $unset, etc.)
replaceOne()Fully replaces the entire document with a new one, except for _id

updateOne() example (a partial update):

js
db.users.updateOne( { name: "Alex" }, { $set: { age: 26 } } )
  • only the age field changes, everything else stays as it was.

replaceOne() example (a full replacement):

js
db.users.replaceOne( { name: "Alex" }, { name: "Alex", age: 26, verified: true } )
  • the old document is deleted and replaced by the new one (if the old one had other fields, they're gone).

The summary for a junior developer:

updateOne() updates partially. replaceOne() overwrites the document entirely.

Short Answer

Interview ready
Premium

A concise answer to help you respond confidently on this topic during an interview.