我正在使用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模型文件。
答案 0 :(得分:3)
我认为它没有在您可能正在使用的数据库驱动程序中定义。我认为你使用的是Mongoose,updateOne()
在那里不可用。您不能将所有本机mongodb函数与所有驱动程序一起使用
答案 1 :(得分:0)
现有针对此https://github.com/Automattic/mongoose/issues/3997的增强请求,但findByIdAndUpdate()方法可能是一个非常接近的选择。