Могу ли я с Mongoid использовать команду «update_all», чтобы поместить значение в поле массива для нескольких записей одновременно?

Можно ли использовать Mongoid с помощью «update_all», чтобы поместить значение в поле массива для всех записей, соответствующих определенным критериям?

Пример:

class Foo
  field :username
  field :bar, :type => Array

  def update_all_bars
    array_of_names = ['foo','bar','baz']
    Foo.any_in(username: foo).each do |f|
      f.push(:bar,'my_new_val')
    end
  end
end

Мне интересно, есть ли способ обновить всех пользователей одновременно (чтобы поместить значение 'my_new_val' в поле "foo" для каждой соответствующей записи), используя "update_all" (или что-то подобное ) вместо того, чтобы перебирать их по очереди и обновлять по одному. Я пробовал все, что мог придумать, и пока не повезло.

Спасибо

6
задан orderedchaos 9 March 2012 в 16:40
поделиться