Ruby on rails Mongoid更新多个记录

Ruby on rails Mongoid更新多个记录,ruby-on-rails,mongodb,mongoid,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.va

我在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,您可以尝试:

samples = Sample.all
samples.each do |sample|
    sample.inc("value" => -1)
end
您可以尝试:

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