2014-03-13 88 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