Je viens de perdre 1 heure sur un problème similaire. J'ai utilisé _.assign{In}()
, puis _.merge()
puis essayé aussi Document#set()
j'ai toujours fini avec des entrées répétées dans le tableau.
La solution de contournement qui fonctionne pour moi
- attribuer
[]
à n'importe quel tableau qui est sur le point d'être défini - puis assignez l'arborescence entière en utilisant
doc.set(attrs)
Exemple (dans mon cas, some_problematic_array
causé le même comportement étrange qu'en question):
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);