Acabo de perder 1 hora en un problema similar. He usado _.assign{In}()
, luego _.merge()
luego probé también Document#set()
Siempre terminé con entradas repetidas en la matriz.
La solución que funciona para mí
- asignar
[]
a cualquier matriz que esté a punto de establecerse - luego asigne el árbol completo usando
doc.set(attrs)
Ejemplo (en mi caso, some_problematic_array
causó el mismo comportamiento extraño que en cuestión):
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);