开发者

mongoid update all documents with conditions

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜