使用Mongoid批量更新

时间:2012-06-20 05:33:34

标签: ruby mongodb mongoid bulk

如何使用Mongoid进行批量更新?

具体而言,将一个现有字段复制到同一文档的另一个字段。

Product.collection.command("db.products.find(
    {gender : { $ne : null } }
  ).forEach(function(doc) {
    doc.archive_gender = doc.gender;
    doc.gender = null;
    db.products.save(doc);
  })"
)

干杯, 夸。

1 个答案:

答案 0 :(得分:1)

好的,所以我们能够eval任何javascript,但让我知道更好的解决方案。这就是我能够从一个字段到另一个字段在MongoDB中实现批量更新的方式。

db = Mongoid::Config::master
db.command({"$eval" => <<-ENDJS})
  db.products.find({
    gender:{ $ne: null }
  }).forEach(function(doc) {
    doc.archive_gender = doc.gender;
    doc.gender = null;
    db.products.save(doc);
  })
ENDJS

干杯, 夸。