国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

NodeJS學習筆記之MongoDB模塊

2019-11-20 13:24:56
字體:
供稿:網(wǎng)友

一,開篇分析

這篇屬于擴展知識篇,因為在下面的文章中會用到數(shù)據(jù)庫操作,所以今天就來說說它(Mongodb模塊)。

(1),簡介

 MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數(shù)據(jù)存儲解決方案。

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

 MongoDB是一個介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。他支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bjson格式,因此可以存儲比較復雜的數(shù)據(jù)類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。

傳統(tǒng)的關(guān)系數(shù)據(jù)庫一般由數(shù)據(jù)庫(database)、表(table)、記錄(record)三個層次概念組成,MongoDB是由數(shù)據(jù)庫(database)、集合(collection)、文檔對象(document)三個層次組成。

MongoDB對于關(guān)系型數(shù)據(jù)庫里的表,但是集合中沒有列、行和關(guān)系概念,這體現(xiàn)了模式自由的特點。

(2),特點

 它的特點是高性能、易部署、易使用,存儲數(shù)據(jù)非常方便。主要功能特性有:

 1)面向集合存儲,易存儲對象類型的數(shù)據(jù)。
 2)模式自由。
 3)支持動態(tài)查詢。
 4)支持完全索引,包含內(nèi)部對象。
 5)支持查詢。
 6)支持復制和故障恢復。
 7)使用高效的二進制數(shù)據(jù)存儲,包括大型對象(如視頻等)。
 8)自動處理碎片,以支持云計算層次的擴展性。
 9)支持RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。
 10)文件存儲格式為BSON(一種JSON的擴展)。
 11)可通過網(wǎng)絡訪問。

(3),安裝及使用

  1,下載并解壓 "mongodb" 到指定目錄,如下:

  2,其中有兩個最重要的文件:”Mongod.exe“和”Mongo.exe“ 。

   Mongod.exe ------ 用來連接到mongo數(shù)據(jù)庫服務器的,即服務器端。
   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數(shù)據(jù)庫服務已經(jīng)成功啟動了。

  (3),創(chuàng)建數(shù)據(jù)庫------進入CMD,鍵入命令“mongo.exe” 出現(xiàn)如下界面:

  (4),在shell 命令窗口鍵入如下命令:" use bb" (use 命令用來切換當前數(shù)據(jù)庫,如果該數(shù)據(jù)庫不存在,則會先新建一個)。

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

  (這條命令是向users 集合中插入一條數(shù)據(jù),如果集合users不存在,則會先新建一個,然后再插入數(shù)據(jù),參數(shù)以JSON格式傳入)。

  (6),在shell 命令窗口鍵入如下命令:“db.users.find()” (顯示users集合下的所有數(shù)據(jù)文檔),如下圖:

   注意圖中的“_id”,系統(tǒng)給每條記錄自動分配了一個惟一主鍵 _id 。

  好了!基本的功能夠用了,后面如果需要額外的操作逐步補充,由于篇幅有限主要說的是NodeJS操作Mongodb,所以暫時告一段落。

 三,進入主題,實例分析

  (1),npm install mongodb (下載后放入制定目錄下)。

  (2),之前我們已經(jīng)建立好了數(shù)據(jù)庫和集合("bb","users")

復制代碼 代碼如下:

 var mongodb = require("mongodb") ;
 var server = new mongodb.Server("localhost",27017,{
     auto_reconnect : true
 }) ;
 var conn = new mongodb.Db("bb",server,{
     safe : true
 }) ;
 conn.open(function(error,db){
     if(error) throw error ;
     db.collection("users",{
         safe : true
     },function(err,collection){
         if(err) throw err ;
         collection.find().toArray(function(e,docs){
             if(e) throw e ;
             console.log(docs) ;
         }) ;
     }) ;
 }) ;

運行結(jié)果如下:

復制代碼 代碼如下:

 [
     {
         _id: 54b3ce920dc20a3ba9607f
         name: 'bigbear',
         password: '12345678'
     }
 ]

四,總結(jié)一下

(1),熟練使用MongoDB數(shù)據(jù)庫。
(2),理解與關(guān)系型數(shù)據(jù)庫之間的差異化。
(3),通過上述的例子,掌握NodeJS如何操作MongoDB。
(4),強調(diào)一句話:如何設計“NoSQL”類型的數(shù)據(jù)庫,思想很重要。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 手游| 河南省| 双江| 白山市| 老河口市| 嘉定区| 东源县| 团风县| 普洱| 新邵县| 合作市| 滁州市| 深州市| 江山市| 永年县| 神农架林区| 吐鲁番市| 内丘县| 浠水县| 铜梁县| 陕西省| 霍城县| 项城市| 调兵山市| 霍林郭勒市| 高雄市| 东乡县| 凤翔县| 六枝特区| 横山县| 余庆县| 拜泉县| 上饶市| 霍城县| 祁阳县| 桦南县| 诸城市| 梁平县| 南澳县| 蓬溪县| 中方县|