天天看點

大熊君大話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" 到指定目錄,如下:

    

大熊君大話NodeJS之------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” 出現如下界面:

大熊君大話NodeJS之------MongoDB子產品(額外篇)

  (4),在shell 指令視窗鍵入如下指令:" use bb" (use 指令用來切換目前資料庫,如果該資料庫不存在,則會先建立一個)。

  (5),在shell 指令視窗鍵入如下指令:“ db.users.insert({"name":"bigbear","password":"12345678"})”,

  (這條指令是向users 集合中插入一條資料,如果集合users不存在,則會先建立一個,然後再插入資料,參數以JSON格式傳入)。

  (6),在shell 指令視窗鍵入如下指令:“db.users.find()” (顯示users集合下的所有資料文檔),如下圖:

大熊君大話NodeJS之------MongoDB子產品(額外篇)

   注意圖中的“_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”類型的資料庫,思想很重要。

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

繼續閱讀