2016-04-19 18 views
-1

Ich habe eine Seite auf NodeJS-express und wenn der Benutzer sein Gleichgewicht erhöhen:Mongoose async fragt

User.update({steamid: user.steamid}, {$set: {wallet: user.wallet + 1)}}, function(err){ 
    if(err) console.log(err); 
}); 

Aber wenn der Benutzer seine „Brieftasche“ mindestens zweimal in einer Reihe Mungo erhöht nur 1 Punkt in „Brieftasche hinzufügen ". Was sollte ich tun? Vielleicht ein Queue-Array hinzufügen und sie dann mit async aufrufen?

+0

Sie sollten stattdessen den Operator atomic $ inc verwenden. [MongoDB Dokumentation auf '$ inc'] (https://docs.mongodb.org/manual/reference/operator/update/inc/) –

Antwort

2

Sie sollten Inkrementieren statt setzen.

User.update({steamid: user.steamid}, {$inc:{wallet:1}}, function(err){ 
    if(err)console.log(err) 
}); 

Ich benutze dies in der Regel, wenn ich keine Informationen über das Modell Menge benötigen und brauchen nur den Differenzwert, der sich auf dem Modell arbeitet.

+1

Ich werde es versuchen danke –

+1

Vielen Dank, es funktioniert! : - * –

+0

Jederzeit, Freund. @ SaidGadjiev – hownowbrowncow