Tôi vừa lãng phí 1 giờ cho vấn đề tương tự. Tôi đã sử dụng _.assign{In}() , rồi đến _.merge() sau đó cũng thử Document#set() tôi luôn kết thúc với các mục nhập lặp lại trong mảng.
Cách giải quyết phù hợp với tôi
- gán
[]vào bất kỳ mảng nào sắp được thiết lập - sau đó chỉ định toàn bộ cây bằng cách sử dụng
doc.set(attrs)
Ví dụ (trong trường hợp của tôi, some_problematic_array gây ra hành vi kỳ lạ tương tự như được đề cập):
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);