我有一个小问题,我有这个代码:
Messages.findOne({id_user: to}, function (err, toUser) {
//dopisujemy wiadomość w tablicy użytkownika
var messArray = toUser.messagesArray;
//przeszukujemy tablice z wiadomościami aby znaleźć odpowiedniego użytkownika
for(var i=0;i<messArray.length; ++i) {
if(messArray[i].id_converser = who) {
// console.log(messArray[i]);
toUser.messagesArray[i].messages.push({id_converser: who,message: message,date: Date()});
toUser.save(function (err) {
if(err) console.log(err);
console.log('Wiadomość dodana');
})
return;
}
}
}) //end zapisujemy wiadomość w miejscu przeznaczenia
并且一切似乎都很好,在控制台中我有消息&#34; wiadomosc dodana&#34;,但是当我在数据库中检查它时,我看不到这些添加的数据,为什么。 谢谢你的回复。
答案 0 :(得分:0)
答案 1 :(得分:0)
当你在JavaScript中修改对象的任何深度属性或数组属性时,你需要使用isModified方法来告诉Mongoose对象的属性被修改并在数据库中更新它。
http://mongoosejs.com/docs/api.html#document_Document-isModified
所以你需要在推送函数之后执行它:
toUser.isModified('messagesArray')