我有這樣的貓鼬模式:
// ------- creating active_rooms model -------
var active_rooms_schema = mongoose.Schema({
room_name: String,
users: [String]
});
var active_rooms = mongoose.model('active_rooms', active_rooms_schema);
數據庫看起來是這樣的:
[{"_id":"586b8eeeebb48c65bcbbc5f3","room_name":"my_roome","__v":0,"users":["sam","sally"]}]
漂亮strightforward。我有一個聊天室和人(用戶到該房間的陣列)。一旦他/她離開房間,我想要移除某個人。
therfore,我寫我的服務器上運行此代碼:
remove_user_from_room: function (user_name, room_name) {
console.log("remove_user_from_room: " + room_name + ", user: " + user_name);
active_rooms.update({'room_name': room_name }, { $pullAll: {'users': [user_name] } })
},
但是,此代碼不會刪除陣列的用戶。它不會更改我的數據庫中的數組。
我的錯誤在哪裏?
感謝
在更新調用中,它不應該是用戶而是用戶名嗎? – Musa
我的不好,謝謝..更新了我的答案。但問題依然存在:(((( – Matoy
更新代碼語法看起來正確,我猜可能它由於某種原因不匹配,你可以用{'room_name':room_name}做一個findOne調用並檢查你是否得到正確的文檔或者沒有 –