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

Keluarkan objek biasa ke dokumen luwak

Mengeposkan jawaban saya sendiri agar ini tidak tetap terbuka:

Model versi 4 (stabil dirilis pada 25-03-2015) sekarang memperlihatkan hydrate() metode. Tak satu pun dari bidang akan ditandai sebagai kotor awalnya, yang berarti panggilan ke save() tidak akan melakukan apa pun sampai bidang dimutasi.

https://github.com/LearnBoost/mongoose /blob/41ea6010c4a84716aec7a5798c7c35ef21aa294f/lib/model.js#L1639-1657

Sangat penting untuk dicatat bahwa ini dimaksudkan untuk digunakan untuk mengonversi objek JS biasa yang dimuat dari database menjadi dokumen luwak. Jika Anda menerima dokumen dari layanan REST atau semacamnya, Anda harus menggunakan findById() dan update() .

Bagi mereka yang hidup dalam bahaya:

Jika Anda benar-benar ingin memperbarui dokumen yang ada tanpa menyentuh database, saya kira Anda dapat memanggil hydrate() , tandai bidang sebagai kotor, lalu panggil save() . Ini tidak terlalu berbeda dengan metode pengaturan doc.isNew = false; seperti yang saya sarankan dalam pertanyaan awal saya. Namun, Valeri (dari tim luwak) menyarankan untuk tidak melakukannya. Ini dapat menyebabkan kesalahan validasi dan masalah kasus tepi lainnya dan umumnya bukan praktik yang baik. findById sangat cepat dan tidak akan menjadi hambatan Anda.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cara menangani panggilan balik dalam for loop (Node.JS)

  2. MongoDB menghapus dokumen subdokumen dari subdokumen

  3. Bagaimana cara mengimpor data dari mongodb ke pandas?

  4. Diskriminator ambigu 'myType' ketika 'myType' dihasilkan secara dinamis saat dijalankan

  5. Mengurangi ukuran file database MongoDB