La documentación del método de actualización de MongoDB establece lo siguiente:
Así que básicamente el multi
El parámetro es lo que habilita el update_all
comportamiento en la pregunta a la que se vinculó.
En respuesta a su segunda pregunta:sí, Mongoid tiene esta función incorporada ahora. La referencia de la documentación está aquí . Pero puedes usarlo así:
User.where(:gender => "Male").update_all(:title => "Mr")
Actualizar
En el caso de que desee insertar un valor en un campo de matriz, aún deberá usar la biblioteca MongoDB directamente, ya que Mongoid update_all
El método solo admite $set
método de actualización de la base de datos (que se puede usar para actualizar una matriz completa, pero no para insertar valores en ella).
El ejemplo en la respuesta a la pregunta a la que se vinculó funcionaría, lo he copiado debajo de aquellos que se topan con esta pregunta (gracias shingara !):
User.collection.update(
{'$in' => {:gender => 'Male'}},
{'$push' => {:titles => 'Mr'}},
{:multi => true}
)