Skami :

To expand on Blakes Seven's answer, all the updateOne method does is simply set the multi option to false as seen here (github).\nAnd in turn all the updateMany method does is set the multi opion to true as seen here (github).\nSo there is no "better" method to call, just pick whichever you feel suits the situation.",
2017-09-21T15:51:28
Lawrence Eagles :

The difference is that update() by default, modifies only one document matching the specified filter. However, you can make it modify all the documents by adding the modifier {multi: true}. updateMany on the other hand, modifies all the documents matching a specified filter.",
2020-03-14T13:32:43
Quang Van :

“updateOne” and “updateMany” are newer APIs and should be used if possible instead of “update”.\nIn the book “Mongo Definitive Guide” (while talking about “updateOne”):\n“The update document must contain update operators. Previous versions of the CRUD API did not catch this type of error. Earlier update methods would simply complete a whole document replacement in such situations. It is this type of pitfall that led to the creation of a new CRUD API.”\n— MongoDB: The Definitive Guide: Powerful and Scalable Data Storage by Shannon Bradshaw, Eoin Brazil, et al.",
2020-09-11T11:07:38
SridharKritha :

updateMany() and updateOne()\nupdateMany(query, update, options) => Modifies ALL the doc's which matches the query.\nupdateOne(query, update, options) => Modifies a SINGLE first doc which matches the query.\n\nupdateMany() and updateOne() options:\n{\n upsert: <boolean>,\n writeConcern: <document>,\n collation: <document>,\n arrayFilters: [ <filterdocument1>, ... ]\n}\n\nupdate():\nupdate(query, update, options) => Modifies a SINGLE first doc which matches the query. \n (DEFAULT behaviour. But you could used as a "updateMany()" or "updateOne()" \n by changing the "multi: <boolean>" inside options)\n\nupdate() options:\n{\n multi: <boolean>, // multi: true => became => updateMany() \n // multi: false => became => updateOne()\n\n upsert: <boolean>,\n writeConcern: <document>,\n collation: <document>,\n arrayFilters: [ <filterdocument1>, ... ]\n}\n \n",
2021-11-25T07:26:35
Shreyas Gangurde :

One difference which I found missing in previous answers is update() does not require $set to be used and w/o $set it actually erases all the existing data in document and replaces it with the data you provide.\nWhile updateMany() & updateOne() actually need $set to be specified w/o $set you will get an error like uncaught exception: Error: the update operation document must contain atomic operators\nIt totally depends on your use case though.",
2020-10-15T09:40:33
yy