Mongoose findByIdAndUpdate失败,返回null

时间:2018-03-12 11:48:10

标签: mongodb mongoose mongoose-schema

我有一个名为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,但没有做到这一点。

0 个答案:

没有答案