我填充了一个子数组:
Model.populate(cars, 'partIds', function(err, cars) { ...
我这样做,因为我需要查看零件对象。但是有些情况下我不想返回那个填充的数组。
检查docs在toObject选项中的depopulate。但是,当调用toObject来确定我是否要减少填充时,我没有所需的信息。
更糟糕的是,看起来我必须循环所有返回的汽车并在每个汽车对象上调用toObject。
是否可以减少数组:
Model.depopulate(cars, 'partIds, function(err, cars) { ...
答案 0 :(得分:0)
在这种情况下,我们只将属性设置为填充对象的_id。
car.part = car.part._id
从未使用填充对象数组,但我认为您可以遍历数组。
答案 1 :(得分:0)
我个人只是做了Reto的建议,但你也可以直接从文档中删除。像这样:
cars.forEach(function (car) { car.depopulate('partIds'); });
答案 2 :(得分:0)
虽然这个答案对党来说太迟了,但这应该有所帮助:
const objectifiedCar = car.toObject();
delete objectifiedCar["part_name"];