NodeJS之------MongoDB模組(額外篇)
一,開篇分析 這篇屬於擴充知識篇,因為在下面的文章中會用到資料庫操作,所以今天就來說說它(Mongodb模組)。 (1),簡介 MongoDB是一個基於分布式檔案儲存體的資料庫。由C++語言編寫。旨在為WEB應用提供可擴充的高效能資料儲存解決方案。 MongoDB是一個高效能,開源,無模式的文檔型資料庫,是當前NoSql資料庫中比較熱門的一種。 MongoDB是一個介於關聯式資料庫和非關聯式資料庫之間的產品,是非關聯式資料庫當中功能最豐富,最像關聯式資料庫的。他支援的資料結構非常鬆散,是類似json的bjson格式,因此可以儲存比較複雜的資料類型。Mongo最大的特點是他支援的查詢語言非常強大,其文法有點類似於物件導向的查詢語言,幾乎可以實作類別似關聯式資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引。 傳統的關聯式資料庫一般由資料庫(database)、表(table)、記錄(record)三個層次概念組成,MongoDB是由資料庫(database)、集合(collection)、文檔對象(document)三個層次組成。 MongoDB對於關係型資料庫裡的表,但是集合中沒有列、行和關係概念,這體現了模式自由的特點。 (2),特點 它的特點是高效能、易部署、易使用,儲存資料非常方便。主要功能特性有: 1)面向集合儲存,易儲存物件類型的資料。 2)模式自由。 3)支援動態查詢。 4)支援完全索引,包含內部對象。 5)支援查詢。 6)支援複製和故障恢複。 7)使用高效的位元據儲存,包括大型物件(如視頻等)。 8)自動處理片段,以支援雲端運算層次的擴充性。 9)支援RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。 10)檔案儲存體格式為BSON(一種JSON的擴充)。 11)可通過網路訪問。 (3),安裝及使用 1,下載並解壓 "mongodb" 到指定目錄,如下: 2,其中有兩個最重要的檔案:”Mongod.exe“和”Mongo.exe“ 。 Mongod.exe ------ 用來串連到mongo資料庫伺服器的,即伺服器端。 Mongo.exe ------ 用來啟動MongoDB shell的,即用戶端。 二,分步驟操作 (1),建立一個目錄,例如:”>mongod -dbpath data/db“ 。 (2),開啟瀏覽器輸入:“http://127.0.0.1:27017/”,見到如下字樣: "You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number",表示已成功。 到此,MongoDB資料庫服務已經成功啟動了。 (3),建立資料庫------進入CMD,鍵入命令“mongo.exe” 出現如下介面: (4),在shell 命令視窗鍵入如下命令:" use bb" (use 命令用來切換當前資料庫,如果該資料庫不存在,則會先建立一個)。 (5),在shell 命令視窗鍵入如下命令:“ db.users.insert({"name":"bigbear","password":"12345678"})”, (這條命令是向users 集合中插入一條資料,如果集合users不存在,則會先建立一個,然後再插入資料,參數以JSON格式傳入)。 (6),在shell 命令視窗鍵入如下命令:“db.users.find()” (顯示users集合下的所有資料文檔),如: 注意圖中的“_id”,系統給每條記錄自動分配了一個惟一主鍵 _id 。 好了!基本的功能夠用了,後面如果需要額外的操作逐步補充,由於篇幅有限主要說的是NodeJS操作Mongodb,所以暫時告一段落。 三,進入主題,執行個體分析 (1),npm install mongodb (下載後放入制定目錄下)。 (2),之前我們已經建立好了資料庫和集合("bb","users") 1 var mongodb = require("mongodb") ; 2 var server = new mongodb.Server("localhost",27017,{ 3 auto_reconnect : true 4 }) ; 5 var conn = new mongodb.Db("bb",server,{ 6 safe : true 7 }) ; 8 conn.open(function(error,db){ 9 if(error) throw error ;10 db.collection("users",{11 safe : true12 },function(err,collection){13 if(err) throw err ;14 collection.find().toArray(function(e,docs){15 if(e) throw e ;16 console.log(docs) ;17 }) ; 18 }) ;19 }) ; 運行結果如下: 1 [ 2 {3 _id: 54b3ce920dc20a3ba9607f4 name: 'bigbear',5 password: '12345678'6 }7 ] 四,總結一下 (1),熟練使用MongoDB資料庫。 (2),理解與關係型資料庫之間的差異化。 (3),通過上述的例子,掌握NodeJS如何操作MongoDB。 (4),強調一句話:如何設計“NoSQL”類型的資料庫,思想很重要。