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

Mongoose + lodash memperpanjang penyalinan array objek secara tidak benar

Saya baru saja membuang waktu 1 jam untuk masalah serupa. Saya telah menggunakan _.assign{In}() , lalu _.merge() lalu coba juga Document#set() saya selalu berakhir dengan entri berulang dalam array.

Solusi yang cocok untuk saya

  • tetapkan [] ke array apa pun yang akan disetel
  • lalu tetapkan seluruh pohon menggunakan doc.set(attrs)

Contoh (dalam kasus saya, some_problematic_array menyebabkan perilaku aneh yang sama seperti dalam pertanyaan):

var attrs = _.pick(req.body, [
    'name',
    'tags', // ...
    "some_problematic_array"
]);
var doc = ///... ;

if( attrs.some_problematic_array ) doc.some_problematic_array = [];
                                      ^^^^ ***workaround***
doc.set(attrs);


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mengakses database produksi Meteor

  2. Cara mengkonfigurasi port baru untuk mongodb

  3. Bagaimana Anda memperbarui banyak bidang menggunakan Update.Set di MongoDB menggunakan driver c # resmi?

  4. Bagaimana cara memperbarui beberapa bidang objek array dengan satu permintaan?

  5. Menjalankan MongoDB dengan Manajer Operasi