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);