通过bash脚本执行Mongo命令失败,求正确执行语句
正确Mongo执行本地JS脚本的命令说明
你原本执行失败的核心原因是Windows路径的反斜杠在Bash环境下会被识别为转义符,导致脚本路径解析错误,同时显式指定脚本参数可以避免命令歧义,以下是分场景的正确写法:
旧版Mongo Shell(mongo命令,适用于MongoDB 5.0及更早版本)
Bash环境(Git Bash、WSL等类Linux终端运行)
将路径反斜杠替换为正斜杠,加引号避免路径含空格时解析错误,显式加--file参数指定脚本:
mongo localhost:27017 --file "C:/Database/newDataBase/createDB.js"
Windows原生CMD/PowerShell环境
可以保留反斜杠,只需给路径加引号即可:
mongo localhost:27017 --file "C:\Database\newDataBase\createDB.js"
新版Mongo Shell(mongosh命令,适用于MongoDB 6.0及更新版本)
新版MongoDB已经废弃mongo命令,默认使用mongosh作为客户端,命令规则和上面一致:
# Bash环境写法 mongosh localhost:27017 --file "C:/Database/newDataBase/createDB.js" # Windows CMD/PowerShell环境写法 mongosh localhost:27017 --file "C:\Database\newDataBase\createDB.js"
额外注意事项
- 如果Mongo实例开启了身份认证,需要追加认证参数:
-u 你的用户名 -p 你的密码 --authenticationDatabase admin - 如果需要执行脚本后不退出shell,可以追加
--shell参数 - 路径加引号是通用最佳实践,可兼容含空格、特殊字符的路径
内容的提问来源于stack exchange,提问作者sekhar
相关产品推荐
相关产品推荐

