Jag har precis slösat bort 1 timme på liknande problem. Jag har använt _.assign{In}() , sedan _.merge() försökte sedan också Document#set() Jag har alltid avslutat med upprepade poster i array.
Lösningen som fungerar för mig
- tilldela
[]till valfri array som är på väg att ställas in - tilldela sedan hela trädet med
doc.set(attrs)
Exempel (i mitt fall, some_problematic_array orsakade samma konstiga beteende som i fråga):
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);