Mongoose’s findOneAndUpdate()
, findOneAndRemove()
, findByIdAndUpdate()
, and findByIdAndRemove()
functions are just wrappers around MongoDB’s . Both the MongoDB server and the MongoDB NodeJS driver set the new
option to false by default, but mongoose 3 overwrote this default. In order to be more consistent with the MongoDB server’s documentation, mongoose will use false by default. That is, findOneAndUpdate({}, { $set: { test: 1 } }, callback);
will return the document as it was before the $set
operation was applied.
In Mongoose 3, CastError and ValidationError had a type
field. For instance, user defined validation errors would have a type
property that contained the string ‘user defined’. In Mongoose 4, this property has been renamed to kind
due to the V8 JavaScript engine using the Error.type property internally.
Related blog posts: