Ruby mongoid使用条件更新所有文档
我有一个模型Ruby mongoid使用条件更新所有文档,ruby,mongoid,document,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'"
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
谢谢您应该尝试将MongoID更新到最新版本。Mongoid 2.0早就发布了。我猜其中一个rc中引入了更新、销毁和删除 升级后,以下各项应能正常工作
Employee.where(:address1 => 'Calgary').update_all(:salary => 10000)
据此,
还有一个快速的Model.response_to?(:update_all)输出true,表明Model.update_all很好这是一种使用(底层驱动程序)进行更新的最新方法:
奇怪的查询顺便说一句:p更新:我目前正在使用mongoid v2.0.0 beta19AFAIK。问题是
Update\u all
是资源列表(结果数组)上的一种方法,而不是模型本身。因此,您不能调用Foo.update\u all,但可以调用Foo.some\u selection.update\u all。@伯克斯:您可以使用Foo.scoped.update\u all
Employee.collection.find(address1: 'Calgary').update_all(salary: 10000)