2012-06-20 97 views
0

如何使用Mongoid进行批量更新?使用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); 
    })" 
) 

干杯, Khoa。

+0

可能重复的[Mongoid Batch Update/Upsert Alternative?](http://stackoverflow.com/questions/25550690/mongoid-batch-update-upsert-alternative) – akostadinov

回答

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 

干杯, Khoa。