Событие Pre remove не срабатывает для схемы мангуста?

Это не стрельба! Понятия не имею, почему, был бы очень признателен за помощь здесь.

 Booking.find({_id: key}).remove(function(err, result){
   if (err) { console.err("ERR", err) }
   else {
     console.log("remove result", result);
   }
 })


 BookingSchema.pre('remove', function (next) {
   console.log("THIS ID", this._id);
   next();
 });

person realisation    schedule 24.03.2016    source источник


Ответы (1)


Согласно документу,

Для remove() нет хука запросов, только для документов. Если вы установите хук 'remove', он сработает при вызове myDoc.remove(), а не при вызове MyModel.remove().

Тогда вы можете использовать этот

Booking.find({_id: key}, function(err, books){
    if (err)
       throw err;
    else {
       books.forEach(function(book){
           book.remove(function(err){
              // the 'remove' pre events are emitted before this book is removed.
           });
       })
    }
});

Вы можете получить дополнительную информацию из этого обсуждения.

person zangw    schedule 24.03.2016
comment
Я думал, что это то, что я делал с этим кодом выше. Я запрашиваю его, затем удаляю результат. Это не то же самое, что ` booking.findone(blah, function(err, book){ book.remove() })`? - person realisation; 24.03.2016