Mongoose push() 函数没有将数据推入数组

Mongoose push() function isn't pushing the data into the array

我必须将产品数据推送到其中包含 store[] 数组的用户文档中, 我使用的代码如下

const db = require("../../auth/models");
const User = db.user


exports.addProduct = (req, res) => {

  User.findOne({
        username: req.body.username
    }, function(err, user) {
        if (err) {
            res.status(500).send({ message: err })
        }else{
            console.log(user)
            user.store.push({
      
                id: req.body.id, 
                barcode: req.body.barcode,
                productName : req.body.productName,
                price : req.body.price,
                quantity: req.body.quantity
            
        })
        }
    } )

  

    
    res.status(200).send({ message: "Product updated successfully!!"})
};

当我 console.log(user) 它给了我找到的用户数据并且 console.log(req) 给了我以表格形式给出的输入我无法解决这个问题.如果您需要解决问题,还有其他问题,请在评论中告诉我,我会 post 他们。提前谢谢你

您的代码运行得非常好:您在数据库中找到了您的用户,并且在其文档的 .store 数组中推送了一个新商店。但是您之后不会保存用户文档。您需要使用 Mongoose 的方法 .save() 并且仅在该操作成功完成后,发送您的回复:

User.findOne({
    username: req.body.username
}, function(err, user) {
    if (err) {
        res.status(500).send({ message: err })
    }else{
        console.log(user)
        user.store.push({
  
            id: req.body.id, 
            barcode: req.body.barcode,
            productName : req.body.productName,
            price : req.body.price,
            quantity: req.body.quantity
        
        })
        user.save(function(err, newUser) {
            if (err) {
                res.status(500).send({ message: err });
            } else {
                console.log(newUser);
                res.status(200).send({ message: "Product updated successfully!!"})
            }
        })
    }
})