【问题标题】:Mongoose push() function isn't pushing the data into the arrayMongoose push() 函数没有将数据推送到数组中
【发布时间】:2021-09-01 23:21:36
【问题描述】:

我必须将产品数据推送到其中包含 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) 给了我输入的形式,我无法解决这个问题。如果您需要解决问题,请在 cmets 中告诉我,我将发布它们。提前谢谢你

【问题讨论】:

  • 能否给出user和req的数据结构?

标签: arrays database mongodb mongoose push


【解决方案1】:

您的代码运行良好:您正在数据库中找到您的用户,并且您正在其文档的 .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!!"})
            }
        })
    }
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-16
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 2015-11-07
    相关资源
    最近更新 更多