MongoDB
1 前言
一个问题,一篇文章,一出故事。
上一个章节,我们使用导出脚本导出mongoDB的数据,详细如下,
所以,本章将实现使用脚本导入mongoDB数据。
2 最佳实践
2.1 创建脚本
mkdir ~/scripts/ vim ~/scripts/mongoimportAllData.sh
加入如下配置,
#!/bin/bash mongoHost="localhost" mongoPort="27017" backupDir="/backup/comchatBackup/mongoExport" mongoImportLog="/var/log/mongodb/mongoImport.log" cd "$backupDir" if [ $? != 0 ]; then echo "`date '+%Y-%m-%d %H:%M:%S'` Backup storage '""$backupDir""' access failed!" | tee -a "$mongoImportLog" exit 0 fi if [ ! -d `dirname "$mongoImportLog"` ]; then mkdir -p `dirname "$mongoImportLog"` fi echo "`date '+%Y-%m-%d %H:%M:%S'` Backup restore start!" | tee -a "$mongoImportLog" for i in `find -name \*.json -type f | sed 's/.\///g'`; do importFile="$i" dataBase=`echo "$importFile" | cut -d"." -f1` collection=`echo "$importFile" | cut -d"." -f2` mongoimport -h "$mongoHost" --port "$mongoPort" -d "$dataBase" -c "$collection" --type=json --file "$importFile" if [ $? == 0 ]; then echo "`date '+%Y-%m-%d %H:%M:%S'` Backup restore $dataBase.$collection successfully!" | tee -a "$mongoImportLog" else echo "`date '+%Y-%m-%d %H:%M:%S'` Backup restore $dataBase.$collection failed!" | tee -a "$mongoImportLog" fi done echo "`date '+%Y-%m-%d %H:%M:%S'` Backup restore end!" | tee -a "$mongoImportLog"
2.2 执行导出操作
sh ~/scripts/mongoimportAllData.sh
执行过程中,如果遇到如下错误,
Failed: invalid JSON input. Position: 171. Character: N
“mongoimport”命令可加入如下参数解决,
--legacy
2.3 检查执行日志
cat /var/log/mongodb/mongoImport.log
错误处理参阅
===================
https://stackoverflow.com/questions/59381172/mongoimport-error-failed-invalid-json-input
没有评论