Току-що изгубих 1 час за подобен проблем. Използвах _.assign{In}()
, след това _.merge()
след това опита и Document#set()
винаги съм завършвал с повтарящи се записи в масива.
Заобиколното решение, което работи за мен
- присвояване на
[]
към всеки масив, който предстои да бъде зададен - след това задайте цялото дърво с помощта на
doc.set(attrs)
Пример (в моя случай, some_problematic_array
предизвика същото странно поведение като въпросното):
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);