2011-01-16 8 views
4

Ich beginne mit dem Edelstein Mongoid in Rails3.Schienen 3: Inkrement manuell ein Feld mit Mongoid

Ich möchte wissen, wie ich manuell ein Feld mit einer Ganzzahl erhöhen kann.

Ich habe eine Menge Methode ausprobiert, aber niemand funktioniert gut.

Und ich würde gerne wissen, ob diese Aktion in einem atomaren Kontext durchgeführt werden kann?

Antwort

11

Für Mongoid Versionen vor 4

von dem mongoid docs unter der Annahme, dass eine Person Modell einen Integer-Bereich der 'Partitur' hat, würde dies die Punktzahl um 100 zu erhöhen:

person = Person.find(id) 
person.inc(score: 100) # Increment score  

weitere Informationen: http://mongoid.org/en/mongoid/docs/persistence.html#atomic

+4

sollte person.inc sein (Ergebnis: 100) – wojtekk

+1

Je nach verwendeter Mongid-Version wird entweder ein Hashwert oder ein Feldname + Wert verwendet. Änderung ist wie von Mongoid 4.0.0: https://github.com/mongodb/mongoid/blob/master/CHANGELOG.md –

4

Richtige Antwort Für Mongoid 4.0+

person = Person.find(id) 
person.inc(score: 100) 
+1

Hängt von der Mongoidversion ab, die du verwendest. Ihre Antwort ist gut für 4.0+, funktioniert aber nicht in früheren Versionen. –

Verwandte Themen