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