您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關node.js中怎么連接MongoDB數據庫,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
1、通過client對象連接到MongoDB
通過實例化一個MongoClient對象連接MongoDB數據庫是最常用也是最佳的方式。
創建MongoClient對象實例的語法:
MongoClient( server, options );
server : 一個serverd對象;
options : 數據庫連接選項;
如上圖所示,MongoClient連接利用了后臺的Server對象。這個對象的功能就是定義了MongoDB驅動程序怎么連接到服務器。
下面,看一個示例:
var MongoClient = require('mongodb').MongoClient, Server = require('mongodb').server; // 創建客戶端連接對象 var client = new MongoClient( new Server('localhost', 27017, { socketOpations: { connectTimeoutMS: 500 }, poolSize: 5, auto_reconnect: true }, { numberOfRetries: 3, retryMilliSeconds: 500 })); // 打開對服務器端MongoDB數據庫的連接 client.open(function(err, client) { if ( err ) { console.log('連接失敗!'); } else { var db = client.db('blogdb'); // 建立到數據庫blogdb的連接 if ( db ) { console.log('連接成功'); db.authenticate('username', 'pwd', function(err, result) { // 對用戶數據庫身份進行驗證 if ( err ) { console.log('數據庫用戶身份驗證失敗'); client.close(); // 關閉對MongoDB的連接 console.log('連接已關閉......'); } else { console.log('用戶身份驗證通過'); db.logout(function (err, result) { // 關閉對數據庫的連接,即退出數據庫 if ( !err ) { console.log('退出數據庫出錯'); } client.close(); // 關閉對MongoDB的連接 console.log( '已關閉連接......' ); }); } }); } } });
注意: 要注銷數據庫,要使用數據庫對象上的logout()
方法。這將關閉到該數據庫上的連接,你不在可以使用Db對象。例如: db.logout();
而要關閉到MongoDB的連接,要在客戶端連接上調用close()
方法,例如: client.close()
。
寫入關注
首先,我們在連接數據庫的時候會用到一個關于寫入關注級別的問題,說白了,個人理解的話就是相當于出現問題的一個處理優先順序,你可以選擇寫入數據庫之前是否需要你確認之類的,或者發生錯誤是否忽略之類的等等,如下圖:
寫 入 級 別 | 說 明 |
---|---|
-1 | 網絡錯誤被忽略 |
0 | 寫確認是不必要的 |
1 | 請求寫確認 |
2 | 寫確認請求跨主服務器和副本集中的一個輔助服務器 |
majority | 寫確認是從副本集的主服務器請求的 |
用來創建MongoClient連接的Server對象的選項,如下:
用來創建MongoClient連接的數據庫連接選項,如下:
2、通過一個連接字符串連接到MongoDB
這種方式要調用MongoClient類的connect( )
方法。connect使用語法如下:
MongoClient.connect(connString, options, callback)
connString字符串的語法如下:
mongodb://username:password@host:port/database?opations
MongoClient連接字符串組件:
選 項 | 說 明 |
---|---|
mongodb:// | 指定字符串使用mongodb的連接格式 |
username | 驗證時使用的用戶名。可選 |
password | 身份驗證時使用的密碼。可選 |
host | MongoDB服務器主機名或者域名。它可以是多個host:port組合來連接多個MongoDB服務器。 例如:mongodb://host1:270017, host2://270017, host3:270017/testDB |
port | 連接MongoDB服務器時使用的端口。默認值是27017 |
database | 要連接的數據庫的名字。 默認為admin |
options | 連接時所使用的選項的鍵值對。可以在dbOpt和serverOpt參數上指定這些選項 |
下面,看一個使用連接字符串方法連接MongoDB數據庫的示例:
var MongoClient = require('mongodb').MongoClient; MongoClient.connect('mongodb://mongodb:test@localhost:27017/blogdb', { db: { w: 1, native_parser: false }, server: { poolSize: 5, socketOpations: { connectTimeoutMS: 500 }, auto_reconnect: true }, replSet: {}, mongos: {} }, function(err, db) { if ( err ) { console.log('連接失敗!'); } else { console.log('連接成功!'); // 注銷數據庫 db.logout(function(err, result) { if ( err ) { console.log('注銷失敗...'); } db.close(); // 關閉連接 console.log('連接已經關閉!'); }); } });
看完上述內容,你們對node.js中怎么連接MongoDB數據庫有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。