鉴于以下文档,我想将“ 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": {}
}
]
}
答案 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);
});