我试图从bash脚本运行此命令:
mongo 192.168.10.20:27000 --eval "use admin && db.shutdownServer() && quit()"
但我得到这个错误:
[rs.initiate() && use admin && db.shutdownServer() && quit()] doesn't exist
如何在不使用js文件的情况下完成?
有
differences between interactive & scripted
mongo
shell sessions.特别是,使用admin这样的命令不是有效的JavaScript,只能在交互式shell会话中使用.
shutdown命令行的工作等价物是:
mongo 192.168.10.20:27000/admin --eval "db.shutdownServer()"
您可以包含要在连接字符串中使用的数据库,并且无需从脚本化的mongo shell会话中退出.
如果确实需要从脚本会话中更改数据库,则可以使用db.getSiblingDB()
JavaScript函数.编写上面的shutdown命令的另一种方法是:
mongo 192.168.10.20:27000 --eval "db=db.getSiblingDB('admin');db.shutdownServer()"