javascript - 如何使用此条件更新 MongoDB 中的约 20,000 条记录

标签 javascript mongodb

我有一个 MongoDB 文档,如下所示:

"sport": "NFL",
"team_id": 5,
"week_num": 6,
"meta": {
   .... more data ....,
   "season_year": 2013
}

我想要做的是将season_year key/val复制到“顶级”文档,同时将其嵌入到meta哈希中。因此它会被重复,最终结果将如下所示:

"sport": "NFL",
"team_id": 5,
"week_num": 6,
"season_year": 2013,
"meta": {
   .... more data ....,
   "season_year": 2013
}

是否有一种简单的方法可以使用上述逻辑更新我的集合中的所有文档?我正在使用 MongoDB shell 版本:2.4.3

最佳答案

问题是在更新过程中,您无法引用正在更新的文档。所以你无法在一次查询中达到你想要的结果。

需要遍历所有文档并一一保存:

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

关于javascript - 如何使用此条件更新 MongoDB 中的约 20,000 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19824759/

相关文章:

node.js - 使用 Mongoose 从表单中提取数据并添加到数据库

spring - 使用 Spring Data MongoDB 中的 MongoTemplate 进行查找查询时仅投影某些字段?

mysql - 数据库设计——Follow System of billions of records

javascript - Redux State 使用 Reselect 导出相关数据

javascript - 将平面结构转换为对象

java mongodb - 获取数组长度而不下载所有数据

javascript - 使用 jquery 从窗口对象中删除事件监听器

javascript - Fullpage.js 的导航问题,未显示事件状态

javascript - 查询 google API 并返回多个术语的 url 搜索位置的脚本?

javascript - 添加自动广告后,移动设备上的链接不起作用