Linux环境下dockes使用MongoDB,上传zip文件如何解压并备份恢复到MongoDB数据库中

1、准备 Docker 和 MongoDB 容器 建议主机端口改一下

docker run --name mongodb -d -p 27018:27017 mongo

2. 创建一个工作目录并将 zip 文件上传到dockers容器中

docker cp data.zip mongodb:/data.zip

3. 在 MongoDB 容器中解压 zip 文件(也可以解压完再复制到容器里先步骤3再步骤2)

接下来,进入 MongoDB 容器的 shell 环境,并在其中解压 data.zip 文件。首先,使用以下命令进入容器的 shell:

docker exec -it mongodb bash

在容器内部,执行以下命令解压 data.zip 文件:

unzip /data.zip -d /data

假设 data.zip 包含的文件会被解压到 /data 目录下。

4. 使用 mongoimport 导入数据到 MongoDB

现在你可以使用 mongoimport 工具将解压后的数据导入到 MongoDB 中。在 MongoDB 容器内执行以下命令:

mongoimport --db your_database --collection your_collection --file /data/your_data_file.json --jsonArray

这里假设 your_data_file.json 是你解压后得到的 JSON 数据文件,your_database 是目标数据库的名称,your_collection 是目标集合的名称。根据实际情况调整这些参数。

5.使用mongorestore导入数据到 MongoDB(步骤四五根据自己需求来写)

在 MongoDB 容器内执行以下命令:

mongorestore --db flash-waimai /path/to/elm_backup/

总结区别

  • 功能mongorestore 用于整体数据库的备份恢复,而 mongoimport 则用于单独集合的数据导入。
  • 操作对象mongorestore 操作的是数据库级别的备份数据,而 mongoimport 操作的是文件中的数据记录。
  • 数据结构mongorestore 保留了备份时的数据库结构和索引,而 mongoimport 只是将数据导入到集合,不会保留任何数据库结构。
相关推荐
大专生学编程1 分钟前
树莓派交叉编译
linux·arm开发
Linux运维老纪7 分钟前
基于k8s手动部署rabbitmq集群(Manually Deploying RabbitMQ Cluster Based on k8s)
linux·云原生·kubernetes·rabbitmq·运维开发
柏箱8 分钟前
关系数据库,集合运算符,关系运算符
数据库
数云界10 分钟前
使用 Elementary 实现开源数据可观测性 — 从零到精通(第一部分)
数据库·开源
专家大圣13 分钟前
Linux:开源世界的璀璨明珠
linux·运维·开源
DBA狗剩儿15 分钟前
oracle停止当前运行的JOB或kill会话
数据库·oracle
像风一样自由202016 分钟前
深入了解Linux操作系统:开源世界的基石
linux·运维·开源
是一只派大鑫17 分钟前
从头开始学MyBatis—02基于xml和注解分别实现的增删改查
java·数据库·后端·mybatis
长安不及十里18 分钟前
38900 机动车安全检测
java·数据库·学习·安全
hummhumm18 分钟前
数据库系统 第58节 数据库审计
网络·数据库·python·算法·oracle·java-ee·database