Właśnie zmarnowałem godzinę na podobny problem. Użyłem _.assign{In}() , a następnie _.merge() następnie spróbowano także Document#set() zawsze kończyłem z powtarzającymi się wpisami w tablicy.
Obejście, które działa dla mnie
- przypisz
[]do dowolnej tablicy, która ma zostać ustawiona - następnie przypisz całe drzewo za pomocą
doc.set(attrs)
Przykład (w moim przypadku some_problematic_array spowodował takie samo dziwne zachowanie jak w pytaniu):
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);