標籤:
一般介紹:
由於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篇