我有一个如下所示的MongoDB文档:
"sport": "NFL",
"team_id": 5,
"week_num": 6,
"meta": {
.... more data ....,
"season_year": 2013
}
我想要做的是将season_year
键/ val复制到“顶级”文档,同时将其嵌入meta
哈希中。所以它会重复,最终结果如下:
"sport": "NFL",
"team_id": 5,
"week_num": 6,
"season_year": 2013,
"meta": {
.... more data ....,
"season_year": 2013
}
使用上述逻辑更新集合中的所有文档是否有一种简单的方法?我正在使用MongoDB shell version: 2.4.3
答案 0 :(得分:6)
问题是在更新期间,您无法引用要更新的文档。所以你无法在一个查询中实现你想要的。
您需要遍历所有文档并逐个保存:
db.yourCollection.find({}).forEach(function(doc) {
doc.season_year = doc.meta.season_year;
db.yourCollection.save(doc);
});