I have a model
class Emplo开发者_JS百科yee
include Mongoid::Document
field :first_name
field :last_name
field :address1
field :address2
field :salary
end
Now I need to update all Employee's salary to 10000 whose address1 is "Calgary"
Now I tried this query
Employee.update_all "salary = 10000", "address1 = 'Calgary'"
But this query gave me error as:
NoMethodError: undefined method `update_all' for Employee:Class
Thanks
You should try to update your MongoID to latest version. Mongoid 2.0 was released sometime back. I guess update_all, destroy_all and delete_all got introduced in one of the rc's.
After upgrade, following should work
Employee.where(:address1 => 'Calgary').update_all(:salary => 10000)
According to this http://groups.google.com/group/mongoid/browse_thread/thread/ac08564d5a38da13?pli=1
and a quick Model.respond_to?(:update_all) outputs true, suggests that Model.update_all is fine
A more up to date way to do it using Moped
(the underlying driver):
Employee.collection.find(address1: 'Calgary').update_all(salary: 10000)
Weird query BTW :P
精彩评论