Dokumentationen for MongoDB-opdateringsmetoden står følgende:
Så dybest set multi
parameter er det, der aktiverer update_all
adfærd i det spørgsmål, du linkede til.
Som svar på dit andet spørgsmål:ja - Mongoid har denne funktion indbygget nu. Dokumentationsreferencen er her . Men du kan bruge det sådan her:
User.where(:gender => "Male").update_all(:title => "Mr")
Opdater
I det tilfælde, hvor du vil skubbe en værdi ind i et matrixfelt, skal du stadig bruge MongoDB-biblioteket direkte, da Mongoid update_all
metoden understøtter kun $set
databaseopdateringsmetode (som kan bruges til at opdatere et helt array, men ikke skubbe værdier ind på det).
Eksemplet i svaret på det spørgsmål, du linkede til, ville fungere, jeg har kopieret det nedenfor dem, der falder over dette spørgsmål (tak shingara !):
User.collection.update(
{'$in' => {:gender => 'Male'}},
{'$push' => {:titles => 'Mr'}},
{:multi => true}
)