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

Luwak:findOneAndUpdate tidak mengembalikan dokumen yang diperbarui

Mengapa ini terjadi?

bawaan adalah mengembalikan asli, tidak diubah dokumen. Jika Anda ingin dokumen baru yang diperbarui dikembalikan, Anda harus memberikan argumen tambahan:objek dengan new properti disetel ke true .

Dari dokumen luwak:

Kueri#findOneAndUpdate

Model.findOneAndUpdate(conditions, update, options, (error, doc) => {
  // error: any errors that occurred
  // doc: the document before updates are applied if `new: false`, or after updates if `new = true`
});

Opsi yang tersedia

  • new :bool - jika benar , kembalikan diubah dokumen daripada aslinya. default ke false (diubah pada 4.0)

Solusi

Lewati {new: true} jika Anda ingin hasil yang diperbarui di doc variabel:

//                                                         V--- THIS WAS ADDED
Cat.findOneAndUpdate({age: 17}, {$set:{name:"Naomi"}}, {new: true}, (err, doc) => {
    if (err) {
        console.log("Something wrong when updating data!");
    }

    console.log(doc);
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB memperbarui bidang dalam array bersarang

  2. Konversi DBObject ke POJO menggunakan MongoDB Java Driver

  3. Tetapkan tanggal default saat memasukkan dokumen dengan bidang waktu. Waktu

  4. MongoDB:desain terbaik untuk aplikasi perpesanan

  5. Ikhtisar MongoDB Atlas:Bagian Satu