为什么在更新MongoDb时出错?

时间:2016-07-19 13:44:34

标签: javascript node.js mongodb express

我正在使用MEAN堆栈构建后端,但是当我尝试更新db中的文档时,我收到错误:

 topUp = function(name, amount, callback) {
    User.updateOne(
        { "name" : name },
        { $set: { "wallet": amount } },
        function(err, results) {
            console.log(results);
            callback();
        });
 };

TypeError:User.updateOne不是函数

但是,例如findOne()工作正常:

    User.findOne({
                name: decoded.name
            }, function(err, user) {
                if (err) throw err;

                i

f (!user) {
                return res.status(403).send({success: false, msg: 'Authentication failed. User not found.'});
            } else {
                //res.json({success: true, info: {wallet: user.wallet, userPic: user.userPic}});
                topUp(decoded.name, amount, function() {
                    User.close();
                });
            }
        });

"用户"是一个Mongo模型文件。

2 个答案:

答案 0 :(得分:3)

我认为它没有在您可能正在使用的数据库驱动程序中定义。我认为你使用的是Mongoose,updateOne()在那里不可用。您不能将所有本机mongodb函数与所有驱动程序一起使用

答案 1 :(得分:0)

现有针对此https://github.com/Automattic/mongoose/issues/3997的增强请求,但findByIdAndUpdate()方法可能是一个非常接近的选择。