MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

mongoose mettant à jour un champ dans un MongoDB ne fonctionne pas

Il semble que vous fassiez des choses inhabituelles :

  • Utilisez findOne au lieu de find si vous souhaitez charger un seul utilisateur
  • Appeler Model.update doit être fait pour mettre à jour les enregistrements que vous n'avez pas chargés
  • $inc ajoute oldPoints, donc la nouvelle valeur sera 2*oldPoints + newPoints
  • Vous utilisez name comme requête conditionnelle au lieu de Username

Je réécrirais le code en quelque chose comme ceci :

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