mongoDB导出-导入数据
阅读原文时间:2023年07月08日阅读:1

--导出数据集

C:\MongoDB\db\bin>mongoexport -d ttx-xwms-test -c things -o d:\mongo_data\things.txt

C:\MongoDB\db\bin>mongoexport -d ttx-xwms -c interface_log_body -o C:\Users\Administrator\Desktop\tingtong_mongo\interface_log_body.json 导出json格式

C:\MongoDB\db\bin>mongoexport -d ttx-xwms -c interface_log -q  "{'type' : 'wms.shipment.update'}" -o C:\Users\Administrator\Desktop\tingtong_mongo\interface_log1.json  带查询条件

mongoexport -d xwms -c interface_log -q '{$and : [{"type" : "wms.shipment.update"}, {created : {$gte: ISODate("2020-01-15T00:00:00.000Z")}}]}' -o /mongodumpData/2020_whl_interface_body.json -u root -p 1234   多条件

mongoexport -d xwms -c interface_log_body -q '{"_id":{"$in":[ObjectId("5dfad4f2cbb55107c6261ef8"),ObjectId("5e216e88cbb55107c629b186")]}}' -o /mongodumpData/2020_whl_interface_body_2222.csv -u root -p 1234 in 语句导出

C:\MongoDB\db\bin> -- 安装路径

--备份数据库(导出整个数据库集)

C:\MongoDB\db\bin>mongodump -h 127.0.0.1:27017 -d ttx-xwms-test -o d:\mongo_data\

C:\MongoDB\db\bin> -- 安装路径

--还原数据库(还原整个数据库集)

C:\MongoDB\db\bin>mongorestore -h 127.0.0.1:27017 -d ttx-xwms-test_restore --dir d:\mongo_data\ttx-xwms-test\

C:\MongoDB\db\bin> -- 安装路径

-d 新的数据库名字

--dir d:\mongo_data\ttx-xwms-test\   数据存在的目录名

在本地使用 27017 启动你的mongod服务。打开命令提示符窗口,进入MongoDB安装目录的bin目录输入命令mongodump:

>mongodump
执行以上命令后,客户端会连接到ip为 127.0.0.1 端口号为 27017 的MongoDB服务上,并备份所有数据到 bin/dump/ 目录中

>mongorestore
执行以上命令后,会还原当前bin/dump/ 目录中的所有数据库

利用rebomongo 工具进行删除数据集

--删除interface_log_body的整个文档集

db.getCollection('interface_log_body').remove({}) --删除表里的数据

--查找文档集

db.getCollection('interface_log_body').find({})

--删除集合

db.getCollection('interface_log_body').drop() --将整个数据表进行删除

======对于在docker容器中的mongodb==========================================================

进入容器

docker exec -it <你的MongodDB容器名> /bin/bash

容器中执行:

mongodump -h 127.0.0.1:27017 -d test -o /dump

参数 作用
-h host
--port 端口
-d 指定数据库
-o 指定备份到哪个目录,不指定应该是直接备份到根目录的/dump文件夹
-u 用户名
-p 密码

系统备份成功会在/home/dump目录下自动生成一个数据库名的文件夹/test,里面是全部Collection备份的bson文件

打包备份文件夹

容器中执行:

tar -zcvf test.tar.gz /dump/test

四、从容器复制到宿主

exit 退回到宿主机

从容器中复制出来文件到宿主机

docker cp <你的MongodDB容器名>:/dump/test.tar.gz  /home

解压

tar -zxvf /home/test.tar.gz

从宿主机复制到容器

docker cp test.tar.gz <你的MongodDB容器名>:/dump/test.tar.gz

进入容器,解压文件

tar -zxvf /home/test.tar.gz

还原数据

mongorestore -h 127.0.0.1:27017 -d ttx-xwms-test_restore --dir /home/ttx-xwms-test/

https://segmentfault.com/a/1190000012330284

对于linux docker中的mongo整个还原步骤

在停止业务的前提下(实质上,就是保证mongo服务不能被写入数据)

将mongo下面data文件夹,整个迁移到另外的服务器,然后启动服务,即可验证数据是否正常

//停止103服务器的mongo服务
docker stop mongo mongo-express
//停止108服务器的mongo服务
docker stop mongo mongo-express
//删除 108服务器 /home/ttx/app/compose/mongo/data/db 内的所有数据
cd /home/ttx/app/compose/mongo/data/db
sudo rm -rf db/
//将103服务器 /home/ttx/app/compose/mongo/data/db 内的所有数据复制到 108服务器的/home/ttx/app/compose/mongo/data/db 目录下
a: 在103服务器上执行 scp -r db ttx@0.0.0.108:/home/ttx/app/compose/mongo/data/
b: 在108服务器上执行 scp -r ttx@0.0.0.103:/home/ttx/app/compose/mongo/data/db/ ./
最终目的都是要将103服务器的mongo数据复制到108服务器的指定目录下
//复制完成之后,将108服务器的mongo启动起来
cd /home/ttx/app/compose/mongo docker-compose up -d
验证数据是否正确

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章