2012-06-20 2 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); 
    })" 
) 

Cheers, Khoa.

+0

Возможный дубликат [Монгоидная периодическая версия обновления/альтернатива?] (Http://stackoverflow.com/questions/25550690/mongoid-batch-update-upsert-alternative) – akostadinov

ответ

1

ОК, поэтому мы можем оценивать любой 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 

Cheers, Хоа.

Смежные вопросы