大熊君大話NodeJS之------MongoDB模塊(額外篇)

一,開篇分析mongodb

這篇屬於擴展知識篇,由於在下面的文章中會用到數據庫操做,因此今天就來講說它(Mongodb模塊)。shell

(1),簡介數據庫

 MongoDB是一個基於分佈式文件存儲的數據庫。由C++語言編寫。旨在爲WEB應用提供可擴展的高性能數據存儲解決方案。npm

 MongoDB是一個高性能,開源,無模式的文檔型數據庫,是當前NoSql數據庫中比較熱門的一種。json

 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 : true
12     },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: 54b3ce920dc20a3ba9607f
4         name: 'bigbear',
5         password: '12345678'
6     }
7 ]

 

四,總結一下

 

(1),熟練使用MongoDB數據庫。

 

(2),理解與關係型數據庫之間的差別化。

 

(3),經過上述的例子,掌握NodeJS如何操做MongoDB。

 

(4),強調一句話:如何設計「NoSQL」類型的數據庫,思想很重要。

 

 

 

              哈哈哈,本篇結束,未完待續,但願和你們多多交流夠溝通,共同進步。。。。。。呼呼呼……(*^__^*)        

相關文章
相關標籤/搜索