Mongoose findByIdAndUpdate返回NULL并且没有错误回调2023 [关闭]

ahy6op9u  于 11个月前  发布在  Go
关注(0)|答案(1)|浏览(192)

**已关闭。**此问题为not reproducible or was caused by typos。目前不接受回答。

这个问题是由错字或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
上个月关门了。
Improve this question
我正在学习Node,Mongo和Mongoose。我有以下内容:

async function addProductToSale (saleId, productId) {
    let result = await saleModel.findByIdAndUpdate(
        saleId,
        { $push: { productos: productId } },
        { new: true },
    );
    console.log(result);
};

字符串
当然,它不起作用。我在控制台上得到NULL值(寄存器没有被更新),找不到一些回调或错误变量来调试。
这也是架构

const ventaSchema = new mongoose.Schema({
    autor: String,
    total: Number,
    pago: String,
    productos: [
        {
          type: mongoose.Schema.Types.ObjectId,
          ref: "Productox"
        }
    ],
    fecha: {type: Date, default: Date.now},
    publicado: Boolean
});

module.exports = mongoose.model("Ventax",ventaSchema);


我试图找到一些回调似乎它已经被删除。我也审查了逻辑和选项,ID是好的,等等。我期待的ID得到推到Mongo文档。

axkjgtzd

axkjgtzd1#

要解决此问题,请确保您传递的saleId实际存在于您的集合中。确保您有错误处理功能,以捕获数据更新期间的任何潜在错误。

async function addProductToSale(saleId, productId) {
    try {
        let result = await saleModel.findByIdAndUpdate(
            saleId,
            { $push: { productos: productId } },
            { new: true }
        );
        if (!result) {
            console.log('No document found with the provided saleId');
        } else {
            console.log(result);
        }
    } catch (error) {
        console.error('Error updating document:', error);
    }
}

字符串

相关问题