MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

NodeJS/Mongoose/MongoDB - Tarik (dari array) tidak berfungsi

Saya menemukan bahwa perintah $pull juga tidak berfungsi untuk saya kecuali saya menyertakan panggilan balik dalam daftar argumen.

Dalam situasi saya, format ini tidak berfungsi:

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

Tapi format ini berhasil:

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

Menurut dokumentasi, sepertinya keduanya berfungsi, tetapi tidak. Alasannya karena cara pertama mengharuskan Anda memanggil .exec() pada objek yang dikembalikan, sedangkan versi callback memanggil exec() secara otomatis. Menyebabkan kebingungan bagi saya juga.

Jadi, Anda perlu melakukan sesuatu seperti ini:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Upsert Cepat atau Massal di pymongo

  2. Bagaimana cara mendapatkan nama dari id di luwak?

  3. MongoDB- Mengambil elemen array yang tepat, tidak termasuk yang lain

  4. Mongo DB:Tidak dapat membuat cluster sharding di Ubuntu

  5. MongoDB $toObjectId