我正在尝试将我的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 },{ }); });
答案 0 :(得分:0)
db.programs_bak.find({}).forEach(function(doc) {
db.programs.update( { _id: doc._id },
{$set : { "showed" : doc.showed._i}});
});