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

Mongodb/Mongoid - was bedeutet {:multi => true}

Die Dokumentation für die MongoDB-Aktualisierungsmethode besagt Folgendes:

Also im Grunde das multi Parameter aktiviert update_all Verhalten in der von Ihnen verlinkten Frage.

Als Antwort auf Ihre zweite Frage:Ja - Mongoid hat diese Funktion jetzt eingebaut. Die Dokumentationsreferenz ist hier . Aber Sie können es so verwenden:

User.where(:gender => "Male").update_all(:title => "Mr")

Aktualisieren

Für den Fall, dass Sie einen Wert in ein Array-Feld verschieben möchten, müssen Sie trotzdem direkt die MongoDB-Bibliothek verwenden, da die Mongoid-Datei update_all -Methode unterstützt nur $set Datenbankaktualisierungsmethode (die verwendet werden kann, um ein ganzes Array zu aktualisieren, aber keine Werte darauf zu schieben).

Das Beispiel in der Antwort auf die von Ihnen verlinkte Frage würde funktionieren, ich habe es unter diejenigen kopiert, die über diese Frage stolpern (danke shingara !):

User.collection.update( 
  {'$in' => {:gender => 'Male'}}, 
  {'$push' => {:titles => 'Mr'}},
  {:multi => true}
)