Mongoid更新多条记录

时间:2016-01-25 14:53:52

标签: ruby-on-rails mongodb mongoid

我在mongodb中的样本集中有记录,如

{
    "name": "x",
    "value": 2
},
{
    "name": "y",
    "value": 3
},
{
    "name": "z",
    "value": 4
}

我想通过减1来更新所有记录的值字段。我做的是

samples = Sample.all
samples.each do |sample|
    sample.update_attributes({value: sample.value - 1})
end

我觉得这不是一个很好的方法。 有没有其他方法可以这样做?

我正在使用mongoid 4.0和rails 4.1.4

1 个答案:

答案 0 :(得分:2)

你可以尝试:

samples = Sample.all
samples.each do |sample|
    sample.inc("value" => -1)
end