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