Dokumentationen för MongoDB-uppdateringsmetoden står följande:
Så i princip multi
parametern är det som aktiverar update_all
beteende i frågan du länkade till.
Som svar på din andra fråga:ja - Mongoid har den här funktionen inbyggd nu. Dokumentationsreferensen finns här . Men du kan använda det så här:
User.where(:gender => "Male").update_all(:title => "Mr")
Uppdatera
I det fall du vill skjuta ett värde till ett matrisfält, måste du fortfarande använda MongoDB-biblioteket direkt, eftersom Mongoid update_all
Metoden stöder endast $set
databasuppdateringsmetod (som kan användas för att uppdatera en hel array, men inte pusha värden på den).
Exemplet i svaret på frågan du länkade till skulle fungera, jag har kopierat det nedan till de som snubblar över den här frågan (tack shingara !):
User.collection.update(
{'$in' => {:gender => 'Male'}},
{'$push' => {:titles => 'Mr'}},
{:multi => true}
)