Sử dụng Mongoid, có thể sử dụng "update_all" để đẩy giá trị vào trường mảng cho tất cả các mục nhập khớp với một tiêu chí nhất định không?Với Mongoid, tôi có thể "update_all" để đẩy giá trị lên trường mảng cho nhiều mục cùng một lúc không?
Ví dụ:
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
Tôi tự hỏi nếu có một cách để cập nhật tất cả những người sử dụng cùng một lúc (để đẩy giá trị 'my_new_val' vào trường "foo" cho mỗi mục phù hợp) sử dụng "update_all "(hoặc một cái gì đó tương tự) thay vì lặp qua chúng để cập nhật từng cái một. Tôi đã thử tất cả mọi thứ tôi có thể nghĩ đến và cho đến nay không có may mắn.
Cảm ơn
Chỉ cần viết câu trả lời, cũng phải có thông số thứ ba 'đa: true' – rubish
bạn nói đúng. Tôi cập nhật câu trả lời của mình – shingara
Brilliant! Cám ơn rất nhiều! – orderedchaos