Ich baue Backend mit MEAN-Stack, aber wenn ich versuche Dokument in der db zu aktualisieren, ich erhalte eine Fehlermeldung:Warum wird beim Aktualisieren von MongoDb ein Fehler angezeigt?
topUp = function(name, amount, callback) {
User.updateOne(
{ "name" : name },
{ $set: { "wallet": amount } },
function(err, results) {
console.log(results);
callback();
});
};
Typeerror: User.updateOne ist keine Funktion
Aber z.B. findOne() funktioniert gut:
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();
});
}
});
"Benutzer" ist eine Mongo-Modelldatei.
weil 'findOne' eine vordefinierte Funktion ist, aber' updateOne() 'nicht. Es sollte standardmäßig nur einen Datensatz aktualisieren. Sie können 'multi: true' verwenden, um mehrere Datensätze zu aktualisieren. –
@MohitBhardwaj gut, nach Mongo docs UpdateOne() ist auch vordefiniert: [Beweis] (https://docs.mongodb.com/getting-started/node/update/) – boooni
Ich denke, es ist nicht in der Datenbank-Treiber definiert Sie könnten verwenden. Ich denke du verwendest Mongoose und 'updateOne()' ist dort nicht verfügbar. Sie können nicht alle nativen mongodb-Funktionen mit allen Treibern verwenden. –