将全量数据库导入MongoDB时mongorestore跳过子目录报错原因排查
报错原因说明
你执行的导入命令如下:mongorestore -d MyDBTEST /users/myusername/documents/supportdbdump
收到的报错信息为:
"don't know what to do with subdirectory "supportdbdump/XXX", skipping"
"don't know what to do with subdirectory "supportdbdump/XXX2", skipping"
"don't know what to do with subdirectory "supportdbdump/XXX3", skipping"
核心原因
- mongorestore是专门用于导入
mongodump导出的标准备份文件的工具,默认只识别备份根目录下存储的.bson数据文件和对应的.metadata.json元数据文件,不会主动递归扫描二级子目录下的文件。 - 你当前的supportdbdump目录下所有JSON文件都存放在二级子目录中,不符合mongorestore的默认文件识别规则,工具无法识别到合法的可导入备份文件,因此抛出跳过子目录的提示。
补充解决方案(可选)
如果需要导入这些子目录下的JSON文件,可选择两种方式:
- 把所有需要导入的JSON文件移动到supportdbdump根目录,执行导入时添加
--jsonArray参数(如果JSON为数组格式)适配JSON文件导入 - 遍历所有子目录的JSON文件,逐个使用
mongoimport命令执行导入,示例命令为:mongoimport -d MyDBTEST -c 集合名 --file 对应JSON文件路径
内容的提问来源于stack exchange,提问作者Moshe Kastel
相关产品推荐
相关产品推荐

