$ pullAll在mongoosedoens't工作

我有这个mongoose模式:

// ------- 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"]}] 

相当直接。 我有一个聊天室和人(到该房间的用户arrays)。 一旦他/她离开房间,我想删除某个人。

因此,我写了这个代码在我的服务器上:

 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] } } ) }, 

但是,此代码不会从arrays中删除用户。 它不会更改我的数据库中的数组。

我的错在哪里?

谢谢

为什么你使用$ 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 } } ) }, 

问题是缺乏同步,我需要使用承诺..上面的代码是正确的。