mongodb - 更新多个单列
问题描述
我是 MoongoDB 的新手,所以我不太了解它。我正在使用 3T 工作室。我创建了一个集合并授予了所有访问权限。
我目前的情况是我有大数据。我导入了只有 5 个字段的 2M 记录。_id A 列 B 列 C 列 D 列
现在我要做的是更新这个大数据库集合上的 100K 数据,为此我有另一个 CSV(CSV2),其中包含两个字段 _id 和 A 列如果 _id 匹配更新 A 列和 CSV2 数据并保持所有字段完整(相同)
如果我通过大数据导入 CSV2,它所做的是用新的 CSV 数据覆盖所有 5 列。
有没有办法使用 Studio3T 或任何其他软件在 MongoDB 中执行此任务?
感谢和问候基山
我已经尝试了很多选项......但没有效果。我可以在 mysql 中编写 1 次更新的代码,但在那里无法更新 100K 数据。这就是为什么我安装 MongoDB 认为这更容易
解决方案
带有选项的mongoimportmerge
将帮助您实现预期的结果。
使用 --mode merge,mongoimport 使您能够将新记录中的字段与数据库中的现有文档合并。像往常一样插入与数据库中现有文档不匹配的文档。默认情况下,mongoimport 根据 _id 字段匹配文档。使用 --upsertFields 指定要匹配的字段。
mongoimport -c collectionName -d databaseName --type csv --mode merge --file CSV2
推荐阅读
- node.js - 使用 webpack 5 在电子上预加载脚本
- amazon-web-services - 为什么当我尝试终止 EC2 新实例时会创建它?
- amazon-web-services - 使用 PartiQL (DynamoDB) 在列表中选择某个地图元素
- python - 禁止登录 IRC 频道,以 twitch 为例
- django - 在 Heroku (Django) 上部署后如何恢复数据
- ruby-on-rails - Rails 6 Active Storage - 当您登陆带有图像的页面时,我的用户头像和帖子图像似乎在闪烁(因为它们正在加载两次)
- typescript - 在 TypeScript 中创建通用代理函数
- jquery - jQuery navbar 与 lightbox++ 冲突
- vue.js - 未找到此依赖项:@/services/AuthenticationService
- reactjs - 如何修复 npm 缺少的脚本