欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

NodeJS學(xué)習(xí)筆記之MongoDB模塊

 更新時(shí)間:2015年01月13日 11:50:57   投稿:hebedich  
nodejs是個(gè)強(qiáng)大的平臺(tái),有基本功能,而且可以掛很多模塊。我們現(xiàn)在需要和mongodb連接的驅(qū)動(dòng),就類似比如mysql的java驅(qū)動(dòng)一樣。nodejs有好幾個(gè)mongodb的第三方驅(qū)動(dòng)。和jdbc不一樣,沒(méi)有標(biāo)準(zhǔn)。所以需要到驅(qū)動(dòng)的網(wǎng)站上去了解學(xué)習(xí)怎么使用它訪問(wèn)mongodb。

一,開(kāi)篇分析

這篇屬于擴(kuò)展知識(shí)篇,因?yàn)樵谙旅娴奈恼轮袝?huì)用到數(shù)據(jù)庫(kù)操作,所以今天就來(lái)說(shuō)說(shuō)它(Mongodb模塊)。

(1),簡(jiǎn)介

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

 MongoDB是一個(gè)高性能,開(kāi)源,無(wú)模式的文檔型數(shù)據(jù)庫(kù),是當(dāng)前NoSql數(shù)據(jù)庫(kù)中比較熱門(mén)的一種。

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

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

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

(2),特點(diǎn)

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

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

(3),安裝及使用

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

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

   Mongod.exe ------ 用來(lái)連接到mongo數(shù)據(jù)庫(kù)服務(wù)器的,即服務(wù)器端。
   Mongo.exe ------ 用來(lái)啟動(dòng)MongoDB shell的,即客戶端。

二,分步驟操作

 ?。?),新建一個(gè)目錄,例如:”>mongod -dbpath data/db“ 。

 ?。?),打開(kāi)瀏覽器輸入:“http://127.0.0.1:27017/”,見(jiàn)到如下字樣:

  "You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number",表示已成功。

  到此,MongoDB數(shù)據(jù)庫(kù)服務(wù)已經(jīng)成功啟動(dòng)了。

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

  (4),在shell 命令窗口鍵入如下命令:" use bb" (use 命令用來(lái)切換當(dāng)前數(shù)據(jù)庫(kù),如果該數(shù)據(jù)庫(kù)不存在,則會(huì)先新建一個(gè))。

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

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

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

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

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

 三,進(jìn)入主題,實(shí)例分析

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

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

復(fù)制代碼 代碼如下:

 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) ;
         }) ;
     }) ;
 }) ;

運(yùn)行結(jié)果如下:

復(fù)制代碼 代碼如下:

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

四,總結(jié)一下

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

相關(guān)文章

  • 利用node.js開(kāi)發(fā)cli的完整步驟

    利用node.js開(kāi)發(fā)cli的完整步驟

    這篇文章主要給大家介紹了關(guān)于如何利用node.js開(kāi)發(fā)cli的完整步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Nodejs-cluster模塊知識(shí)點(diǎn)總結(jié)及實(shí)例用法

    Nodejs-cluster模塊知識(shí)點(diǎn)總結(jié)及實(shí)例用法

    在本篇文章里小編給大家整理的是一篇關(guān)于Nodejs-cluster模塊知識(shí)點(diǎn)總結(jié)及實(shí)例用法,有興趣的朋友們可以跟著學(xué)習(xí)下。
    2021-12-12
  • Node.js實(shí)現(xiàn)讀取Excel數(shù)據(jù)并插入MySQL

    Node.js實(shí)現(xiàn)讀取Excel數(shù)據(jù)并插入MySQL

    這篇文章主要為大家詳細(xì)介紹了Node.js如何實(shí)現(xiàn)讀取Excel數(shù)據(jù)并插入到MySQL數(shù)據(jù)庫(kù)中,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • NodeJS配置HTTPS服務(wù)實(shí)例分享

    NodeJS配置HTTPS服務(wù)實(shí)例分享

    本文給大家分享的是在nodejs中配置https服務(wù)的方法和具體的示例,非常的詳細(xì),有需要的小伙伴可以來(lái)參考下
    2017-02-02
  • Node.js和Express簡(jiǎn)單入門(mén)介紹

    Node.js和Express簡(jiǎn)單入門(mén)介紹

    本篇文章主要介紹了Node.js和Express簡(jiǎn)單入門(mén)介紹,詳細(xì)介紹如何用Node.js和Express搭建一個(gè)web服務(wù)器,有興趣的可以了解一下。
    2017-03-03
  • nodejs環(huán)境使用Typeorm連接查詢Oracle數(shù)據(jù)

    nodejs環(huán)境使用Typeorm連接查詢Oracle數(shù)據(jù)

    這篇文章主要介紹了nodejs環(huán)境使用Typeorm連接查詢Oracle數(shù)據(jù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • npm淘寶鏡像過(guò)期解決辦法

    npm淘寶鏡像過(guò)期解決辦法

    npm?官方鏡像在國(guó)內(nèi)訪問(wèn)很慢,很多同學(xué)都會(huì)選擇切換到國(guó)內(nèi)的一些 npm 鏡像,本文主要介紹了npm淘寶鏡像過(guò)期解決辦法,感興趣的可以了解一下
    2024-02-02
  • nodejs教程之異步I/O

    nodejs教程之異步I/O

    nodejs的核心之一就是非阻塞的異步IO,于是想知道它是怎么實(shí)現(xiàn)的,經(jīng)過(guò)一份研究,找到些答案,在此跟大家分享下。
    2014-11-11
  • Node.js中的Buffer對(duì)象及創(chuàng)建方式

    Node.js中的Buffer對(duì)象及創(chuàng)建方式

    node.js提供了一個(gè)Buffer對(duì)象來(lái)提供對(duì)二進(jìn)制數(shù)據(jù)的操作,Buffer?類的實(shí)例類似于整數(shù)數(shù)組,但?Buffer?的大小是固定的、且在?V8?堆外分配物理內(nèi)存。本文給大家介紹Node.js中的Buffer對(duì)象及創(chuàng)建方式,感興趣的朋友一起看看吧
    2022-01-01
  • Node多進(jìn)程的實(shí)現(xiàn)方法

    Node多進(jìn)程的實(shí)現(xiàn)方法

    我們都知道?Node.js?是以單線程的模式運(yùn)行的,但它使用的是事件驅(qū)動(dòng)來(lái)處理并發(fā),這樣有助于我們?cè)诙嗪?cpu?的系統(tǒng)上創(chuàng)建多個(gè)子進(jìn)程,從而提高性能
    2022-08-08

最新評(píng)論