@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
window bat脚本实现mongo集合批量导出导入功能
最新推荐文章于 2024-10-15 16:12:44 发布
该脚本用于在具有管理员权限的情况下,从指定的MongoDB数据库(如efs)导出多个集合的数据到JSON文件,然后导入到另一个数据库(如ams)中。涉及的关键操作包括mongoexport和mongoimport,以及使用for循环和条件判断处理错误级别。
摘要由CSDN通过智能技术生成