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