Ich habe gerade 1 Stunde mit einem ähnlichen Problem verschwendet. Ich habe _.assign{In}() verwendet , dann _.merge() dann auch Document#set() probiert Ich habe immer mit wiederholten Einträgen im Array geendet.
Die Problemumgehung, die für mich funktioniert
- weisen Sie
[]zu zu jedem Array, das gesetzt werden soll - weisen Sie dann den gesamten Baum mit
doc.set(attrs)zu
Beispiel (in meinem Fall some_problematic_array dasselbe seltsame Verhalten wie in Frage verursacht):
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);