La documentazione per il metodo di aggiornamento MongoDB afferma quanto segue:
Quindi fondamentalmente il multi
parametro è ciò che abilita update_all
comportamento nella domanda a cui ti sei collegato.
In risposta alla tua seconda domanda:sì - Mongoid ha questa funzionalità integrata ora. Il riferimento alla documentazione è qui . Ma puoi usarlo in questo modo:
User.where(:gender => "Male").update_all(:title => "Mr")
Aggiorna
Nel caso in cui desideri inserire un valore in un campo array, dovrai comunque utilizzare direttamente la libreria MongoDB, poiché Mongoid update_all
il metodo supporta solo il $set
metodo di aggiornamento del database (che può essere utilizzato per aggiornare un intero array, ma non per inserire valori su di esso).
L'esempio nella risposta alla domanda a cui ti sei collegato funzionerebbe, l'ho copiato sotto coloro che si imbattono in questa domanda (grazie shingara !):
User.collection.update(
{'$in' => {:gender => 'Male'}},
{'$push' => {:titles => 'Mr'}},
{:multi => true}
)