如何使用此条件更新MongoDB中的~2,000条记录

时间:2013-11-06 23:07:14

标签: javascript mongodb

我有一个如下所示的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

1 个答案:

答案 0 :(得分:6)

问题是在更新期间,您无法引用要更新的文档。所以你无法在一个查询中实现你想要的。

您需要遍历所有文档并逐个保存:

db.yourCollection.find({}).forEach(function(doc) {
  doc.season_year = doc.meta.season_year;
  db.yourCollection.save(doc);
});