MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mungo, der ein Feld in einer MongoDB aktualisiert, funktioniert nicht

Es scheint, dass Sie ein paar ungewöhnliche Dinge tun:

  • Verwenden Sie findOne statt find wenn Sie nur einen Benutzer laden möchten
  • Aufruf von Model.update sollte getan werden, um Datensätze zu aktualisieren, die Sie nicht geladen haben
  • $inc fügt oldPoints hinzu, also ist der neue Wert 2*oldPoints + newPoints
  • Sie verwenden name als bedingte Abfrage anstelle von Username

Ich würde den Code so umschreiben:

User.findOne({Username: name}, function(err, user){
  if (err) { return next(err); }
  user.Points += points;
  user.save(function(err) {
    if (err) { return next(err); }
  });
});