collection.update()
will only report the number of documents that were affected to its own callback.
To retrieve the documents while modifying, you can use collection.findOneAndUpdate()
instead (formerly .findAndModify()
).
collection.findOneAndUpdate(
{ "code": req.body.code },
{ $set: req.body.updatedFields },
{ returnOriginal: false },
function (err, documents) {
res.send({ error: err, affected: documents });
db.close();
}
);
The returnOriginal
option (or new
with Mongoose) lets you specify which version of a found document (original [default] or updated) is passed to the callback.
returnOriginal
was deprecated in version 3.6
. Use returnDocument: "before" | "after"
for version 3.6
and later.
Disclaimer: This answer currently refers to the Node.js Driver as of version 3.6. As new versions are released, check their documentation for possibly new deprecation warnings and recommended alternatives.