使用 mongoimport 将大型 JSON 文件导入 MongoDB
·
我试图将大型数据集 JSON 文件导入 MongoDB,我的第一种方法是使用 MongoDB Compass,我的文件大小约为 7GB,但经过 30 分钟后仍然停留在 0%,如下图所示:
[](https://res.cloudinary.com/practicaldev/image/fetch/s--gMuno5PV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/i/fkbaluqym0htu8ybh8no.png)
所以我使用了下一个方法,mongoimport,但我使用的是 MongoDB 和 docker,所以第一步我需要将我的巨大 JSON 文件复制到 MongoDB 容器:
docker cp users.json CONTAINER_NAME:/users.json
进入全屏模式 退出全屏模式
然后使用以下命令连接到我的 Mongodb 容器:
docker exec -it CONTAINER_NAME bash
进入全屏模式 退出全屏模式
现在只需要使用 mongoimport 插入大文件:
mongoimport --db MY_DB --collection users --drop --jsonArray --batchSize 1 --file ./users.json
进入全屏模式 退出全屏模式
通过使用--batchSize 1
选项,您将被保险巨大的 JSON 文件将被解析并以批量大小存储,以防止内存问题。
如果在导入期间您遇到 MongoDB 导入的killed
错误,则可能需要通过将deploy.resources
添加到 docker-compose 文件来增加容器的内存大小:
version: "3"
services:
mongodb:
image: mongo:3.6.15
deploy:
resources:
limits:
memory: 4000M
reservations:
memory: 4000M
进入全屏模式 退出全屏模式
更多推荐
所有评论(0)