Dokumentace pro metodu aktualizace MongoDB uvádí následující:
Takže v podstatě multi
Parametr umožňuje update_all
chování v otázce, na kterou jste odkazovali.
Odpověď na vaši druhou otázku:ano – Mongoid má tuto funkci již zabudovanou. Odkaz na dokumentaci je zde . Ale můžete to použít takto:
User.where(:gender => "Male").update_all(:title => "Mr")
Aktualizovat
V případě, že chcete vložit hodnotu do pole pole, budete stále muset přímo použít knihovnu MongoDB, protože Mongoid update_all
metoda podporuje pouze $set
metoda aktualizace databáze (kterou lze použít k aktualizaci celého pole, ale nelze do něj vkládat hodnoty).
Příklad v odpovědi na otázku, na kterou jste odkazovali, by fungoval, zkopíroval jsem ho pod ty, kteří na tuto otázku narazili (díky shingara !):
User.collection.update(
{'$in' => {:gender => 'Male'}},
{'$push' => {:titles => 'Mr'}},
{:multi => true}
)