mongoose прави това вместо вас с една операция.
Contact.findByIdAndUpdate(
info._id,
{$push: {"messages": {title: title, msg: msg}}},
{safe: true, upsert: true},
function(err, model) {
console.log(err);
}
);
Моля, имайте предвид, че като използвате този метод, няма да можете да използвате „предварителни“ функции на схемата.
http://mongoosejs.com/docs/middleware.html
От най-новия mogoose findbyidandupdate трябва да има добавен незадължителен параметър "new :true". В противен случай старият документ ще ви бъде върнат. Следователно актуализацията за Mongoose версия 4.x.x се преобразува в:
Contact.findByIdAndUpdate(
info._id,
{$push: {"messages": {title: title, msg: msg}}},
{safe: true, upsert: true, new : true},
function(err, model) {
console.log(err);
}
);