MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

NodeJS/Mongoose/MongoDB - Изтегляне (от масив) не работи

Открих, че командата $pull също не работи за мен, освен ако не включа обратното извикване в списъка с аргументи.

В моята ситуация този формат не работи:

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

Но този формат успя:

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

Според документацията изглежда, че и двете трябва да работят, но не го правят. Причината е, че първият начин изисква да извикате .exec() на върнатия обект, докато версията за обратно извикване извиква exec() автоматично. Причини известно объркване и за мен.

Така че трябва да направите нещо подобно:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. параметърът include_type_name е зададен на true в node.js

  2. MongoDB:Как да дефинирам схема?

  3. Разлика между count() и find().count() в MongoDB

  4. Относно MongoDB, защо го използваме? Терминологията и внедряването на MongoDB

  5. mongodb групирайте стойности по множество полета