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 只是将数据导入到集合,不会保留任何数据库结构。
相关推荐
xhbh66617 小时前
不止是DELETE:MySQL多表关联删除的JOIN语法实战详解
数据库·mysql·程序员·mysql删除语句
lsnm17 小时前
【LINUX网络】IP——网络层
linux·服务器·网络·c++·网络协议·tcp/ip
不掰手腕17 小时前
在UnionTech OS Server 20 (统信UOS服务器版) 上离线安装PostgreSQL (pgsql) 数据库
linux·数据库·postgresql
MAGICIAN...17 小时前
【Redis五种数据类型】
数据库·redis·缓存
yddddddy17 小时前
SQLite的基本操作
数据库·sqlite
华科云商xiao徐17 小时前
Java并发编程常见“坑”与填坑指南
javascript·数据库·爬虫
Lynnxiaowen17 小时前
今天继续昨天的正则表达式进行学习
linux·运维·学习·正则表达式·云计算·bash
努力学习的小廉17 小时前
深入了解linux系统—— POSIX信号量
linux·运维·服务器
刘一说18 小时前
CentOS部署ELK Stack完整指南
linux·elk·centos