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

來源:互聯網
上載者:User

標籤:

一,開篇分析

這篇屬於擴充知識篇,因為在下面的文章中會用到資料庫操作,所以今天就來說說它(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”類型的資料庫,思想很重要。

 

 

 

              哈哈哈,本篇結束,未完待續,希望和大家多多交流夠溝通,共同進步。。。。。。呼呼呼……(*^__^*)             

 

大熊君大話NodeJS之------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.