我有一个模特
class Employee
include Mongoid::Document
field :first_name
field :last_name
field :address1
field :address2
field :salary
end
现在我需要将所有员工的工资更新为10000,其地址1是“卡尔加里”
现在我尝试了这个查询
Employee.update_all "salary = 10000", "address1 = 'Calgary'"
但是这个查询给了我错误:
NoMethodError: undefined method `update_all' for Employee:Class
由于
答案 0 :(得分:39)
您应该尝试将MongoID更新为最新版本。 Mongoid 2.0在某个时候发布了。我想在其中一个rc中引入了update_all,destroy_all和delete_all。
升级后,以下操作
Employee.where(:address1 => 'Calgary').update_all(:salary => 10000)
答案 1 :(得分:0)
根据此http://groups.google.com/group/mongoid/browse_thread/thread/ac08564d5a38da13?pli=1
并快速Model.respond_to?(:update_all)输出true,表明Model.update_all没问题
答案 2 :(得分:0)
使用Moped
(底层驱动程序)执行此操作的更新方法:
Employee.collection.find(address1: 'Calgary').update_all(salary: 10000)
奇怪的查询BTW:P