Query.prototype.updateOne()
Parameters
- [filter] «Object»
[doc] «Object» the update command
[options] «Object»
[options.multipleCastError] «Boolean» by default, mongoose only returns the first error that occurred in casting the query. Turn on this option to aggregate all the cast errors.
[options.omitUndefined=false] «Boolean» If true, delete any properties whose value is
undefined
when casting an update. In other words, if this is set, Mongoose will deletebaz
from the update inModel.updateOne({}, { foo: 'bar', baz: undefined })
before sending the update to the server.[options.strict] «Boolean|String» overwrites the schema’s strict mode option
[options.upsert=false] «Boolean» if true, and no documents found, insert a new document
[options.writeConcern=null] «Object» sets the write concern for replica sets. Overrides the schema-level write concern
[options.timestamps=null] «Boolean» If set to
false
and schema-level timestamps are enabled, skip timestamps for this update. Note that this allows you to overwrite timestamps. Does nothing if schema-level timestamps are not set.[callback] «Function» params are (error, writeOpResult)
Returns:
- «Query» this
Declare and/or execute this query as an updateOne() operation. Same as update()
, except it does not support the multi
or overwrite
options.
- MongoDB will update only the first document that matches
filter
regardless of the value of themulti
option. - Use
replaceOne()
if you want to overwrite an entire document rather than using atomic operators like$set
.
Note updateOne will not fire update middleware. Use pre('updateOne')
and post('updateOne')
instead.
Example:
const res = await Person.updateOne({ name: 'Jean-Luc Picard' }, { ship: 'USS Enterprise' });
res.n; // Number of documents matched
res.nModified; // Number of documents modified
This function triggers the following middleware.
updateOne()