這幾天一直在學習mongdb的基礎知識,跟著網上大神的腳步(代碼)去模擬連接mongodb數據庫,下面這篇文章就給大家總結介紹了node.js連接MongoDB數據庫的2種方法教程,文中介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
前言
MongoDB Node.js驅動程式是被官方支援的原生node.js驅動程序,他是至今為止最好的實現, 並且得到了MongoDB官方的支持。 MongoDB團隊已經採用MongoDB Node.js驅動程式作為標準方法。
npm install mongodb@1.4.3 // MongoDB Node.js驱动程序 npm install mongoose@3.8.8 //mongoose模块
要從Node.js連接MongoDB資料庫我們有兩個方法可以選擇:
透過實例化mongodb模組中提供的mongodbClient類,然後使用這個實例化的物件來建立和管理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
說明 | |
---|---|
指定字串使用mongodb的連線格式 | |
驗證時所使用的使用者名稱.可選 | |
身份驗證時使用的密碼。可選 | |
MongoDB伺服器主機名稱或網域名稱。它可以是多個host:port組合來連接多個MongoDB伺服器。例如:mongodb://host1:270017, host2://270017, host3:270017/testDB | |
#連接MongoDB伺服器時所使用的連接埠。預設值是27017 | |
要連接的資料庫的名字。預設為admin | |
連接時所使用的選項的鍵值對。可以在dbOpt和serverOpt參數上指定這些選項 |