De documentatie voor de MongoDB-updatemethode vermeldt het volgende:
Dus eigenlijk de multi
parameter is wat de update_all
. inschakelt gedrag in de vraag waarnaar u linkt.
In antwoord op je tweede vraag:ja - Mongoid heeft deze functie nu ingebouwd. De documentatiereferentie is hier . Maar je kunt het als volgt gebruiken:
User.where(:gender => "Male").update_all(:title => "Mr")
Bijwerken
In het geval dat u een waarde naar een arrayveld wilt pushen, moet u nog steeds de MongoDB-bibliotheek rechtstreeks gebruiken, aangezien de Mongoid update_all
methode ondersteunt alleen de $set
database-updatemethode (die kan worden gebruikt om een hele array bij te werken, maar er geen waarden op te pushen).
Het voorbeeld in het antwoord op de vraag waarnaar je linkte zou werken, ik heb het hieronder gekopieerd voor degenen die deze vraag tegenkomen (bedankt shingara !):
User.collection.update(
{'$in' => {:gender => 'Male'}},
{'$push' => {:titles => 'Mr'}},
{:multi => true}
)