Tengo este esquema de mangosta:
// ------- 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);la base de datos se ve así:
[{"_id":"586b8eeeebb48c65bcbbc5f3","room_name":"my_roome","__v":0,"users":["sam","sally"]}]bastante directo. Tengo una sala de chat y personas (matriz de usuarios en esa sala). Quiero eliminar a cierta persona una vez que salga de la habitación.
por lo tanto, escribí este código en mi servidor:
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] } } ) },sin embargo, este código no elimina a un usuario de la matriz. no cambia la matriz en mi base de datos.
donde esta mi error
Gracias
El problema era la falta de sincronización, necesitaba usar promesas... el código anterior es correcto.
¿Por qué está usando $pullAll, si desea eliminar a una sola persona? Usar $tirar
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 } } ) },