node串連mongoDB篇

來源:互聯網
上載者:User

標籤:

一般介紹:

由於mongodb資料庫在javascript指令碼環境中支援bson對象(json對象的二進位形式)的存取,因此對於資料的存取的效率是非常高的.在mongodb資料庫中,將每一條等待插入的資料記錄儲存在記憶體中,因此,該資料庫是一種非阻塞型資料庫,在需要記錄大量日誌資料,即時測量資料或即時統計資料時,該資料庫可以達到令人滿意的效果.用於mongodb資料庫支援在查詢語句內使用javascript函數,也大大加強了它讀取資料的能力.另外,mongodb資料庫是一個面向文檔的資料庫,它允許使用者在父記錄中儲存子記錄.

串連MongoDB:

先要建立一個代表mongoDB資料庫所在的伺服器的server對象,用於指定需要串連的MongoDB資料庫所在伺服器.

var server=new mongo.Server(host,port,[options]);

host:字串,用於指定伺服器所在的地址.

port:正數值,用於指定伺服器連接埠號碼.

options的取值如下:

ssl:布爾值.true時表示用戶端和伺服器端之間建立一個基於ssl安全性通訊協定的串連,伺服器端需要啟用ssl安全性通訊協定.預設屬性值為false.

sslValidate:布爾值.用於指定伺服器是否驗證用戶端所提交的認證.true時,伺服器端需要使用ssl安全性通訊協定2.4版以上.預設是fasle.

sslCA:數組.數組中每一個元素都是一個buffer對象或一個字串.用於指定一組供伺服器端驗證時使用的認證(伺服器端需要使用ssl安全性通訊協定2.4版以上),預設屬性值為null.

sslCert:屬性值為一個buffer對象或一個字串,用於指定一個供伺服器端驗證時使用的認證(伺服器端需要使用ssl安全性通訊協定2.4版以上),預設屬性值為null.

sslKey:屬性值為一個Buffer對象或一個字串,用於指定一個供伺服器端驗證時使用的私密金鑰(伺服器端需要使用ssl安全性通訊協定2.4版以上),預設屬性之為null.

sslPass:屬性值為一個Buffer對象或一個字串,用於指定一個供伺服器端驗證時使用的認證密碼(伺服器端需要使用ssl安全性通訊協定2.4版以上),預設屬性之為null.

poolSize:屬性值為一個整數,用於指定串連池中的最大串連數量.預設屬性之為5.

socketOptions:屬性值為一個對象,用於指定與伺服器建立串連的連接埠使用的選項,預設屬性為null,屬性值對象中可使用的屬性如下.

  keepAlive:屬性值為一個整數,單位為毫秒,用於指定用戶端每隔多久向伺服器端發送一次keepAlive探測包.

  connectTimeoutMS:屬性值為一個整數,單位為毫秒,用於指定用戶端連線逾時時間.

  socketTimeoutMS:屬性值為一個整數,單位為毫秒,用於指定用戶端連接埠逾時時間.

logger:用於記錄日誌的對象,預設屬性值為null.

auto_reconnect:布爾值,true表示用戶端與伺服器端串連過程中發生錯誤時自動重建串連.預設屬性之為false.

disableDriverBSONSizeCheck:屬性值為一個布爾值,當屬性值為true時,在bson對象尺寸過大時強迫伺服器端拋出一個錯誤,預設屬性為false.

在MongoDB伺服器對象建立成功後,需要建立一個代表MongoDB資料庫的Db對象.

var db=new mongo.Db(databaseName,server,[options]);

databaseName:字串,資料庫名.

server:資料庫所在的伺服器對象.

options參數:

w:屬性值為一個大於-1的整數或一個字串.該屬性值用於設定寫資料操作時MongoDB資料庫內部的write concern機制,MongoDB資料庫內部使用write concern機制來報告一條資料的寫入操作是否成功.當w屬性值為小於1的整數時,write concern機制不承認一條資料被寫入,當w屬性值為大於會等於1的整數值或字串時,write concern機制承認一條資料被寫入.

wtimeout: 屬性值為一個整數值,用於指定寫資料操作時的逾時時間.單位為毫秒.

fsync:布爾值.用於指定在寫資料庫操作的方法返回前是否要等待MongoDB資料庫內部使用的fsync操作(該操作將剩餘的被掛起資料全部寫入資料庫)結束.預設屬性值為false.

journal:布爾值,在寫資料庫操作的方法返回前是否要等待MongoDB資料庫內部使用的journal操作(該操作在資料庫中寫入執行日誌)結束.預設屬性值為false.

native_parser:屬性值為一個布爾值.資料庫內部是否使用c++ bson解析器.預設屬性值為false.

forceServerObjectId:布爾值,是否在伺服器端,而不是在用戶端建立bson對象Id.預設屬性值為false.

pkFactory:該對象重載資料庫內部產生的對象id主鍵.

serializeFunctions:屬性值為一個布爾值.用於指定是否在資料庫內部序列化javascript函數.預設屬性值為false.

raw:是否在資料庫內部使用bson資料緩衝區來執行資料的存取操作.預設屬性值為false.

recordQueryStats:指定當查詢資料時是否要在資料庫內部執行查詢統計.預設屬性為false.

retryMiliSeconds:整數,單位為毫秒.指定當串連資料庫操作失敗時,每個多久重新嘗試串連.預設為5000.

numberOfRetries:指定當串連資料庫失敗時,重新串連資料庫的次數.預設為5.

logger:記錄動作記錄的對象,預設屬性值為null.

slaveOk:為整數值.設定查詢時在資料庫內部使用的SlaveOk值(只在需要顯示指定串連到一個從屬伺服器時有效),預設為null.

safe:布爾值.true表示使用getLastError命令執行資料的存取操作.該命令返回存取操作的執行結果.預設屬性值為false.

 

在db對象建立之後,需要使用該對象的open方法執行資料庫連接操作.

db.open(function(err,db){   });

回呼函數中,err參數表示資料庫連接失敗時,拋出的錯誤.db表示串連成功後,的db對象.串連失敗的話,該值為null.

 

當資料庫不在需要使用時,可使用該資料可對象的close方法關閉資料庫.

db.close([closeType],[callback]);

closeType:為true時,強制關閉資料庫,關閉後,不可再使用該資料庫物件的open方法開啟該資料庫.為false時,不強制關閉資料庫.當資料庫關閉後,可以使用open開啟.

callback:  function (err){},  關閉後的操作.

 

node串連mongoDB篇

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.