mongoose 文檔(八) Connections


我們可以通過利用mongoose的connect()方法連接到MongoDB 。

mongoose.connect('mongodb://localhost/myapp');

這是在默認端口(27017)連接到在本地運行的myapp數據庫的最低需要。如果本地連接失敗那么嘗試使用127.0.0.1代替localhost。當本地主機名改變有時會出現問題。

我們也能根據你的環境指定URI中的幾個參數。

mongoose.connect('mongodb://username:password@host:port/database?options...');

詳細看MongoDB連接字符串格式

 

Options

connect方法還接收一個option對象,該對象將被傳遞給底層驅動程序。這里的所有選項優先於連接字符串傳遞的選項。

mongoose.connect(uri, options);

以下是可用的選項鍵:

db          -       傳遞給collection db實例

server      -       傳遞給collection server實例

repelset    -       傳遞給collection repelset實例

user        -       驗證用戶(如果沒有在uri指定)

pass        -       驗證密碼(如果沒有在uri指定)

auth        -       認證選項

mogos       -       傳遞給 [underlying driver's mongos options](http://mongodb.github.io/node-mongodb-native/2.0/api/Mongos.html)

 

例子:

var options = {
  db: { native_parser: true },
  server: { poolSize: 5 },
  replset: { rs_name: 'myReplicaSetName' },
  user: 'myUserName',
  pass: 'myPassword'
}
mongoose.connect(uri, options);

注意:server 選項auto_reconnect 默認為true,可以被覆蓋。

        db選項forceServerObjectId被設置為false,不能被覆蓋。

 

關於可用選項的更多信息見driver

 

關於keepAlive的說明

對於長時間運行的程序,通常是以毫秒為單位謹慎地使用keepAlive。沒有它,在一段時間之后,你可能看到沒有理由的 "connection closed" 錯誤。如果是這樣,在閱讀這篇文章之后,您可能會決定啟用keepAlive。

options.server.socketOptions = options.replset.socketOptions = { keepAlive: 120 };
mongoose.connect(uri, options);

 

 

連接副本集

使用同樣的方法,而不是通過一個單一的URI連接到一個副本集,但我們通過逗號分隔URI。

mongoose.connect('mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]' [, options]);

 

 

Multi-mongos 支持

在多個Mongos的實例也支持高可用性。給mongos實例傳遞一個連接字符串並設置mongos選項為true。

mongoose.connect('mongodb://mongosA:27501,mongosB:27501', { mongos: true }, cb);

 

 

多個連接

到目前為止,我們已經看到了如何使用MongoDB的默認連接。有時我們可能需要mongo打開多個連接,每個有不同的讀/寫設置,或者只是對不同的數據庫為例。在這些情況下,我們可以利用mongoose.createConnection()接受已經討論過的所有參數,並返回一個新的連接。

var conn = mongoose.createConnection('mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]', options);

 

 

連接池

每個連接,無論是用mongoose.connect還是mongoose.createConnection創建都用一個默認大小為5的內置可配置連接池備份。使用的連接選項調節其大小,:

// single server
var uri = 'mongodb://localhost/test';
mongoose.createConnection(uri, { server: { poolSize: 4 }});

// for a replica set
mongoose.createConnection(uri, { replset: { poolSize: 4 }});

// passing the option in the URI works with single or replica sets
var uri = 'mongodb://localhost/test?poolSize=4';
mongoose.createConnection(uri);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM