在Mongo 3.4中重命名数组文档

时间:2018-10-09 20:02:05

标签: mongodb

鉴于以下文档,我想将“ Doc”重命名为“ doc”。我以为也许可以在forEach中使用$ rename,但是没有这种运气。

db.getCollection('Docs').find({}).forEach(
function(doc){        
    doc.history.forEach(function(d2){                        
        var id = d2._id
       db.collection.update(d2, {$rename:{"Doc": "doc"}});
       print(d2);
    })                
}
)


{
"_id": "ObjectId(\"5b85c223e959480ea8b2c6d2",
"history"[{
        "Doc": {},
        "Doc": {},
        "Doc": {}
    }
]
}

1 个答案:

答案 0 :(得分:0)

这最终为我工作:

db.Docs.find({ 'history': { $exists: 1 } }).snapshot().forEach(function(item)
{      
    item.history.forEach(function(item2){        
        item2.doc = item2.Doc;
        delete item2["Doc"];
        print(item2);
    })

    db.Docs.save(item);
});