我建立後端與MEAN堆棧,但是當我嘗試在數據庫中更新文件我得到一個錯誤:爲什麼在更新MongoDb時出錯?
topUp = function(name, amount, callback) {
User.updateOne(
{ "name" : name },
{ $set: { "wallet": amount } },
function(err, results) {
console.log(results);
callback();
});
};
類型錯誤: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();
});
}
});
「User」是一個Mongo模型文件。
因爲'findOne'是一個預定義函數,但'updateOne()'不是。它應該默認只更新一條記錄。您可以使用'multi:true'來更新多個記錄。 –
@MohitBhardwaj好,根據Mongo文檔updateOne()也是預定義的:[proof](https://docs.mongodb.com/getting-started/node/update/) – boooni
我認爲它沒有在數據庫驅動中定義你可能正在使用。我認爲你使用的是Mongoose,而'updateOne()'在那裏不可用。您不能在所有驅動程序中使用所有本地mongodb函數。 –