Mongoose findByIdAndUpdate 返回 NULL 并且没有错误回调 2023

问题描述 投票:0回答:1

我正在学习 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 文档中...

mongodb mongoose mongoose-schema mongoose-populate
1个回答
0
投票

要解决此问题,请确保您传递的 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);
    }
}
        
© www.soinside.com 2019 - 2024. All rights reserved.