2014-03-13 91 views
3

我尝试使用shell脚本连接到远程MongoDB实例,但我无法连接。从bash shell脚本连接到mongoDB

#!/bin/sh 

mongo --eval "db = connect('sm-repository2.db.qa.test.com:27017/testdb')" 

mongo --eval "db.stats()" # do a simple harmless command of some sort 

RESULT=$? # returns 0 if mongo eval succeeds 

if [ $RESULT -ne 0 ]; then 
    echo "mongodb not running" 
    exit 1 
else 
    echo "mongodb running!" 
fi 

这种尝试连接到我的本地蒙戈实例,并给了我这个错误:

Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84` 
+0

可能是一个转义序列的问题?你可以试试'mongo --eval“db = connect('sm-repository2.db.qa.test.com:27017/testdb')”'? –

+0

谢谢你指出。但是这并没有帮助。 –

+0

可能是因为你打开了2个独立的蒙戈壳?你可以尝试在一个mongo shell命令中传递所有javascript代码吗?如果不是,你可以添加日志语句来确认哪一行完全失败? –

回答

8

你想要的是:

mongo sm-repository2.db.qa.test.com:27017/testdb --eval "db.stats()" 

或者更长的脚本:

mongo sm-repository2.db.qa.test.com:27017/testdb script.js 

查看完整选项documentation