2015-09-08 42 views
0

我在將對象添加到我的Mongo集合時遇到了一些麻煩。這裏是我的更新功能:將對象添加到多個文檔的陣列

'readMessages': function (chatId) { 

    Messages.update({ 
     "chat_id": chatId, 
     "read.user_id": {$nin: [this.userId]} 
    }, {$addToSet: {'read.$.user_id': this.userId}}); 


} 

我想查找聊天的所有消息,即用戶還沒有閱讀。當我調用函數時,他應該更新所有消息並將user_id插入到「讀取」數組中。

如果我用我的值做一個Messages.find(),他會發現150條消息 - 這是正確的。但是當我嘗試用下面的命令更新所有的消息對象時,什麼都沒有發生 - 我的「讀取」數組仍然是空的。

Mongo將新對象推送到所有匹配文檔的正確語法/方式是什麼?

回答

0

想我找到我自己的解決方案:

'readMessages': function (chatId) { 

    Messages.update({ 
     "chat_id": chatId, 
     "read.user_id": {$nin: [this.userId]} 
    }, {$addToSet: {'read': {user_id: this.userId}}}, {validate: false, multi: true}); 


}