我有一个名为Plot的对象的Mongoose模式,在保存方面工作正常。但是,当我尝试使用下面的代码更新这些图时,它会失败,返回null:
exports.updatePlot = async (req, res) => {
let updates = { ...req.body.props };
const id = updates._id;
if (updates.plannedYield) {
const plannedYield = Number(updates.plannedYield);
const metrics = {
yield: { day120CustomerEstimation: plannedYield }
};
updates.metrics = metrics;
delete updates.plannedYield;
}
console.log(updates);
try {
console.log('updating plot');
const updatedPlot = await Plot.findByIdAndUpdate(id, updates, {
new: true
});
if (!updatedPlot) {
console.log("couldn't update plot");
}
console.log(('updated plot saved:', updatedPlot));
res.json({
updatedPlot
});
} catch (e) {
console.log('error', e);
return res.status(422).send({
error: { message: 'e', resend: true }
});
}
};
这会产生以下控制台输出:
{ id: '5aa65801c97d496ef457b802',
metrics: { yield: { day120CustomerEstimation: 1 } } }
updating plot
couldn't update plot
null
有人可以建议修复吗?我已经尝试将id转换为ObjectId,但没有做到这一点。