MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

NodeJS/Mongoose/MongoDB — ściąganie (z tablicy) nie działa

Odkryłem, że polecenie $pull również nie działa dla mnie, chyba że uwzględnię wywołanie zwrotne na liście argumentów.

W mojej sytuacji ten format nie działał:

UserAlerts.findOneAndUpdate({userId: userId}, {$pull: {alerts: {_id: alertId}}});

Ale ten format:

UserAlerts.findOneAndUpdate({userId: userId}, {$pull: {alerts: {_id: alertId}}}, function(err, data){
  console.log(err, data);
});

Zgodnie z dokumentacją wydaje się, że oba powinny działać, ale nie działają. Powodem jest to, że pierwszy sposób wymaga wywołania .exec() na zwróconym obiekcie, podczas gdy wersja wywołania zwrotnego wywołuje exec() automatycznie. Spowodował również dla mnie pewne zamieszanie.

Musisz więc zrobić coś takiego:

UserAlerts.findOneAndUpdate({userId: userId}, {$pull: {alerts: {_id: alertId}}}).exec();



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy można zamienić dywidendę i dzielnik operatora zapytań $mod MongoDB?

  2. Jak w MongoDB mogę sortować dokumenty na podstawie właściwości w osadzonym obiekcie?

  3. Jak zaktualizować elementy tablicy zgodne z kryteriami w dokumencie MongoDB?

  4. Zapytanie Mongodb Java o zakres dat

  5. mongoDB updateMany z upsert true i $in in where condition