mongodb - 将制表符分隔的文本文件放入 MongoDB 集合的最佳方法
问题描述
我有一个以文本文件形式提供给我的产品数据表,数据格式如下:
**开始
IB 1107518415
BI平装本
卑诗省
卑诗省
CO 英国
ED阿尔瓦雷斯,R.迈克尔
IU 46 黑白插图。2张地图18张桌子
国会议员否
PD 20160307
I3 9781107518414
**
基本上,遵循一个 TAG 系统,其中每个 TAG 都有一个唯一的 2 位标识符,后跟相关数据本身。CR/LF 将位于每个字段的末尾。
** 标记用于指示新记录的开始。
该文件是 3 GB,它有 600 万条这样的记录,每条记录最多有 43 个字段,有些字段有多个值,比如上面示例中的“BC”字段,我需要这两个值。
将此文件放入集合的最佳方法是什么?
谢谢穆罕默德
解决方案
这可以通过两个步骤完成:
步骤 1.将文件转换为可用格式(CSV 或 JSON)
您可以使用正则表达式来获取所有字段,例如
/^\*\* START IB (.+) BI (.+) BC (.+) BC (.+) CO (.+) ED (.+) MP (.+) PD (.+) PA (.+) NP (.+) RP (.+) RI (.+) RE (.+) DI (.+) PU (.+) YP (.+) DE (.+) EA (.+) RF (.+) WE (.+) SG (.+) GC (.+) I3 (.+)/
步骤 2.使用 mongoimport 导入文件,此处回答
推荐阅读
- flutter - 如何阻止颤振在错误上运行构建功能
- postgresql - PostgreSQL 会自动创建表的索引吗?
- javascript - 有效的字谜空间复杂度
- amazon-web-services - 随机查询 DynamoDB 表的更好方法?
- java - Javac 使用 Powershell 但不使用命令提示符
- python - 将 Opencv 与烧瓶一起使用时,“无法停止流:设备或资源繁忙”。未导入烧瓶时效果很好
- r - spTransform():“不能从 NA 参考系统进行转换”
- javascript - Firebase 函数:未定义函数
- java - 如何从处理库中导入数据文件夹?
- swift - 如何在 Swift 中有效地显示来自两个不同 Firebase 引用的集合视图中的数据?