window bat脚本实现mongo集合批量导出导入功能

该脚本用于在具有管理员权限的情况下,从指定的MongoDB数据库(如efs)导出多个集合的数据到JSON文件,然后导入到另一个数据库(如ams)中。涉及的关键操作包括mongoexport和mongoimport,以及使用for循环和条件判断处理错误级别。
摘要由CSDN通过智能技术生成
@echo off
::需要修改的地方,注意需要管理员权限才能执行
set collections=flink_resident_cursor,flink_session_buffer,flink_plate_session_buffer,flink_resident_plate_cursor,flink_face_session_buffer,flink_resident_face_cursor
set collectionsRemain=%collections%

set path=C://Program Files//MongoDB//Tools//100//bin//

::定义变量
set fromDbIp=192.168.60.204
set fromDbUser=root
set fromDbPwd=root
set fromDbName=efs

::定义变量
set toDbIp=127.0.0.1
set toDbUser=root
set toDbPwd=root
set toDbName=ams

cd %path%

:: %errorlevel%==0 上一条指令执行成功,%errorlevel%==1 上一条指令执行失败, delims=,表示以逗号作为分隔符,对remain字符串进行分割处理,tokens表示分段的方式,tokens=1*表示第一个分隔符;之前的作为一部分,剩下的(*表示)作为一部分。这两部分在循环体总可以用%%a表示第一部分,%%b表示第二部分。

:loop
for /f "tokens=1* delims=," %%a in ("%collectionsRemain%") do (
if exist %%a.json del %%a.json
mongoexport -h %fromDbIp% -u %fromDbUser% -p %fromDbPwd% -d %fromDbName% -c %%a -o %%a.json
if %errorlevel%==1 goto :end
mongoimport -h %toDbIp% -u %toDbUser% -p %toDbPwd% -d %toDbName% -c %%a --file %%a.json
if %errorlevel%==0 del %%a.json
echo %%a exec ...... 
set collectionsRemain=%%b
@echo.
@echo.
)

if defined collectionsRemain goto :loop

goto :end

:end
pause

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彼岸花@开

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值