Právě jsem ztratil 1 hodinu podobným problémem. Použil jsem _.assign{In}()
a poté _.merge()
pak zkusil také Document#set()
vždy jsem končil opakovanými položkami v poli.
Řešení, které pro mě funguje
- přiřadit
[]
do libovolného pole, které se chystá nastavit - pak přiřaďte celý strom pomocí
doc.set(attrs)
Příklad (v mém případě some_problematic_array
způsobilo stejné podivné chování jako v otázce):
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);