2016-09-26 56 views
2

取出由MongoDB的數據我想從MongoDB中,其中數據庫連接正常,每次取數據,沒有任何錯誤。但是,當我試圖獲取數據它給了我下面的錯誤:錯誤在Node.js的

{ [MongoError: connection 5 to c1669.candidate.18.mongolayer.com:11669 timed out] 
    name: 'MongoError', 
    message: 'connection 5 to c1669.candidate.18.mongolayer.com:11669 timed out' } 

但首先10至11的嘗試是好的,從蒙戈獲得預期的數據,後來我通過上面的錯誤不斷推出。

欲瞭解更多信息:使用mongodb npm module

+0

,你能否告訴我們您正在嘗試的代碼? – Shrabanee

+0

對不起!我無法顯示我的代碼段。我有約束力。 –

+0

現在,有時會出現「在複本集中找不到主節點」的錯誤。而且大多數情況下,前面的錯誤只有7個而不是5個。 {[MongoError:連接7至c1669.candidate.18.mongolayer.com:11669超時] 名: 'MongoError', 信息: '連接7至c1669.candidate.18.mongolayer.com:11669超時'} –

回答

1

我認爲它的連接池的大小問題,因爲你說的第一個10-11嘗試都不錯,可能是你定義了非常有限的池大小連接,因此,當您創建連接,超過限制它不是允許後查詢數據庫。請檢查它,因爲我不確定沒有看到代碼,但這可能是原因。

更新:

試試下面的選項在連接到數據庫的時間。

var dbOptions = { 
    server: { 
     socketOptions: { 
      keepAlive: 100, 
      connectTimeoutMS: 30000 
     } 
    } 
}; 

mongoose.connect('mongodb://localhost/db', dbOptions); 

請參閱此鏈接,因爲您似乎正在使用replicaset。 https://github.com/Automattic/mongoose/issues/2089

+0

現在我正在使用:var options = {native_parser:true,poolSize:50,server:{socketOptions:{connectTimeoutMS:15000,socketTimeoutMS:15000}}}; 仍然面臨同樣的錯誤。還要別的嗎? –

+0

任何人都可以幫忙嗎?這對我來說就像是噩夢。 –