Могу попробовать это:
getfields: function(req, res){
Manufacturers.findOne({id: '5af01c0e712f4c05b27af99c'})
.populate('manufacturer_tabs')
.exec(function(err, manufacturer){
if(err){
return res.serverError(err);
}
var manufacturer_tabs_list = _.cloneDeep(manufactuurer.manufacturer_tabs);
manufacturer_tabs_list[1].name = 'Tab 2';
return res.json(manufacturer_tab_list);
})
},
Я использую findOne вместо find для возврата одного объекта изготовителя, для которого коллекция factory_tabs является свойством. Затем я клонирую его, чтобы он больше не являлся объектом модели (если у него версия 1.0, то вам не понадобится _.cloneDeep (), и он может просто изменять данные, например, factoryr.manufacturer_tabs.name = 'Tab 2';).
Я бы добавил дополнительную обработку ошибок сразу после первой ошибки, например:
if (!manufacturer || !manufacturer.manufacturer_tabs || !manufacturer.manufacturer_tabs.length > 1) {
return res.serverError('Can\'t find data');
}
Все, что работает для вас, конечно. Приветствия