2012-06-20 111 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。