sql >> Databasteknik >  >> NoSQL >> MongoDB

mongoose att uppdatera ett fält i en MongoDB fungerar inte

Det verkar som om du gör några onormala saker:

  • Använd findOne istället för find om du bara vill ladda en användare
  • Anropar Model.update bör göras för att uppdatera poster som du inte har laddat
  • $inc lägger till oldPoints, så det nya värdet blir 2*oldPoints + newPoints
  • Du använder name som den villkorliga frågan istället för Username

Jag skulle skriva om koden till något sånt här:

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


  1. MongoDB deleteOne()

  2. Hur undviker man bristen på transaktioner i MongoDB?

  3. Mongoose-schema:Validerar unikt fält, skiftlägesokänsligt

  4. Hur man upprätthåller unika inbäddade dokument i mongoid