使用现有对象更新MongoDB对象

时间:2014-03-25 19:54:28

标签: mongodb data-conversion

我正在尝试将我的mongodb数据转换为更简单的格式,但我不知道如何检查某些字段是否为数组并仅更新它们。

我目前在我的数据库中有这种对象

{ "_id" : ObjectId("xyz"), "name" : "Yeti ", "channel" : "ABC", "showed" : { "_isAMomentObject" : true, "_i" : "25.3.2014 23:40", ... }}

我还有一些新格式的行:

{ "_id" : ObjectId("xyz"), "name" : "Yeti ", "channel" : "ABC", "showed" : "25.3.2014 23:40" }

我想将所有在“show”属性中具有数组类型的对象更新为显示属性中显示为._i的对象。

shows._i =>显示,对于所有具有显示属性的数组的对象。

我尝试使用我的备份集合进行此更新,但它将null放入所有对象的shows属性中:

db.programs_bak.find({}).forEach(function(doc) { db.programs.update( { _id: doc._id }, { showed: doc.showed._i },{ }); });

1 个答案:

答案 0 :(得分:0)

db.programs_bak.find({}).forEach(function(doc) {
       db.programs.update( { _id: doc._id },
                           {$set : { "showed" : doc.showed._i}});
                        });