mongoid更新所有条件的文件

时间:2011-04-05 05:18:56

标签: ruby mongoid document

我有一个模特

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

由于

3 个答案:

答案 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

相关问题