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

Luwak memperbarui banyak dokumen tidak memperbarui apa pun

Setelah menghabiskan beberapa jam mencoba mencari tahu di mana kesalahan itu dan mengapa itu tidak memperbarui basis data, saya menemukan itu benar-benar memperbarui basis data. Masalahnya adalah saya memeriksa pembaruan di mongo Shell dan setelah saya memperbaruinya melalui permintaan posting nodejs, itu tidak muncul di Shell sebagai diperbarui. Namun ketika saya console.log() labelnya, itu diperbarui. Jadi saya menyelidiki masalahnya lebih lanjut dan saya menemukan bahwa masalahnya bukan pada shell mongo, tetapi penggunaan pembaruan perintah luwak yang salah. Saya melewatkan argumen panggilan balik. Setelah menambahkan fungsi panggilan balik, data segera diperbarui di shell mongo.

Jadi, alih-alih melakukan:

Label.update({'_id': { $in: post.labelIds }}, {$addToSet: {postIds:req.body.id}}, {multi: true})

Jangan lupa untuk menambahkan panggilan balik:

Label.update({'_id': { $in: post.labelIds }}, {$addToSet: {postIds:req.body.id}}, {multi: true}, function(err, affected) {
   if(err)
      console.log(err)
   else
      console.log(affected)
      // After successful update, redirect here to another page...

Atau seperti yang disarankan oleh jawaban duplikat untuk menjalankan exec():

Label.update({'_id': { $in: post.labelIds }}, {$addToSet: {postIds:req.body.id}}, {multi: true}).exec()



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara mengatur MongoDB Change Stream 'OperationType' di driver C #?

  2. Cara mendapatkan aliran biner oleh GridFS ObjectId dengan Spring Data MongoDB

  3. Melayani URL dinamis dengan express dan mongodb

  4. MongoDB - perbarui sub dokumen menggunakan $set

  5. Pertempuran Database NoSQL - Membandingkan Fungsi NoSQL MongoDB &MSSQL