2014-05-20 202 views
0

我正在使用在Ubuntu OS上使用mongoDB作爲數據庫的deployd。Mongo db數據庫無法從shell,數據存儲中訪問

mongoDB的所有數據庫都可以從mongodb shell中訪問,但是我的問題是當我使用deployd創建一個新項目時我可以存儲/讀取/修改記錄,但是這個新數據庫無法從mongodb shell訪問,我該怎麼做?。

這個新項目的數據庫文件存儲在應用程序目錄中,而不是存放在mongoDB默認數據目錄中。

mongoDB作爲應用程序中的數據庫和MongoDB作爲所有應用程序的全局數據庫的區別是什麼?

目前,所有藏品都可以訪問使用dpd對象像

dpd.albums.get(inputParams, function(resultSet, err){ //handle result}); 

雖然我想訪問使用的東西這些集合類似

db.albums.find(); //within mongod shell 

回答

3

看來這裏有一些誤解有關與部署「deployd」。

首先「deployd」依賴於現有的MongoDB安裝在它的部署主機或以其他方式配置爲使用主機另一臺服務器上。所以,「數據文件」保存在哪裏通常是一個修飾點。所有「deployd」試圖做的就是啓動「mongod」實例,因爲如果配置是本地的,它自己的實例將啓動。

不管你做什麼,所有的選項都可以在配置中使用。還有就是文檔here一個很好的示例:

var server = deployd({ 
    port: process.env.PORT || 5000, 
    env: 'staging', 
    db: { 
    host: 'my.production.mongo.host', 
    port: 27105, 
    name: 'my-db', 
    credentials: { 
     username: 'username', 
     password: 'password' 
    } 
    } 
}); 

正如你所看到的主機和端口設置是在應用程序本身的配置中指定,所以在您不使用默認的「MongoDB的」主機和端口然後將它們添加到命令行選項,如:

mongo --host my.production.mongo.host --port 27105 

因此,即使在同一個本地主機,請注意實例不使用默認27017端口,但不同的一個,你需要指定時連接。

另見mongo shell命令文檔以及所述deployd文檔。

+0

是,一些研究之後,現在我知道這一點,但問題是使用nohup的,它失敗,爲什麼我要遷移我的所有數據到MongoDB中作爲服務將啓動MongoDB的路徑開始其MongoDB實例和多數民衆贊成在啓動時deployd。任何想法如何用nohup啓動deployd?或任何建議如何避免這種情況?我卡在這裏 –

+0

+1無論如何,你的答案幫助了很多 –