我有这个猫鼬模式:
// ------- 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);
DB看起来像这样:
[{"_id":"586b8eeeebb48c65bcbbc5f3","room_name":"my_roome","__v":0,"users":["sam","sally"]}]
非常直截了当。我有一个聊天室和人(该房间的用户阵列)。我想在他/她离开房间后将其移除。
因此,我在我的服务器上写了这段代码:
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] } } )
},
但是,此代码不会从数组中删除用户。它不会更改我的数据库中的数组。
我的错误在哪里?
由于
答案 0 :(得分:1)
如果您只想删除一个人,为什么使用$ pullAll? 使用$ pull
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 }, { $pull: {'users': user_name } } )
},
答案 1 :(得分:1)
问题是缺乏同步,我需要使用promises ..上面的代码是正确的。