mongoose erledigt dies für Sie in einem Arbeitsgang.
Contact.findByIdAndUpdate(
info._id,
{$push: {"messages": {title: title, msg: msg}}},
{safe: true, upsert: true},
function(err, model) {
console.log(err);
}
);
Bitte beachten Sie, dass Sie mit dieser Methode die "pre"-Funktionen des Schemas nicht nutzen können.
http://mongoosejs.com/docs/middleware.html
Ab dem neuesten Mogoose muss findbyidandupdate ein "new :true" optionaler Parameter hinzugefügt werden. Andernfalls erhalten Sie das alte Dokument zurück. Daher konvertiert das Update für Mongoose Version 4.x.x in :
Contact.findByIdAndUpdate(
info._id,
{$push: {"messages": {title: title, msg: msg}}},
{safe: true, upsert: true, new : true},
function(err, model) {
console.log(err);
}
);