node.js零基礎詳細教程(6):mongodb數據庫操作 以及導入導出

第六章 建議學習時間4小時  課程共10章

學習方式:詳細閱讀,並手動實現相關代碼

學習目標:此教程將教會大家 安裝Node、搭建服務器、express、mysql、mongodb、編寫後臺業務邏輯、編寫接口,最後完成一個完整的項目後臺,預計共10天課程。

 

數據庫


 

數據庫管理結構,一般分爲兩種:B/S架構   C/S架構。

B/S架構:  Browser/Server,瀏覽器/服務器模式,即通過瀏覽器和服務器端的數據庫進行交互

C/S架構:  Client/Server,客戶端/服務器模式,即通過客戶端和服務器的數據庫進行交互(我們使用的cmd命令行就可以算是一個客戶端)

 

數據庫根據數據結構分爲:關係型數據庫和非關係型數據庫

關係型數據庫就如一般很規整的表格,可以根據橫向縱向去定位某條數據,如下圖

一般的數據庫都是關係型數據庫 ,如 mySQL,oracle

而非關係型數據庫是不能通過橫向縱向去定位一條數據,它的結構更像是一個數組裏放了很多個json數據,如下圖

我們即將學習的mongodb就是非關係型數據庫

 

當下比較火的數據庫有:oracle、mySQL、SQL Server

相比這些數據庫,mongodb有體積小、能方便快捷的操作,很適合中小型項目的快速開發

而且它可以很好的配置node.js使用  (node.js也可以操作其他的數據庫,以後有時間會單獨給大家介紹  node.js操作 mySQL)

 

mongodb安裝


 

1.在官網上下載所需的安裝軟件

 本課程軟件下載 鏈接:http://pan.baidu.com/s/1kVPxBJT 密碼:uziu

下載地址:https://www.mongodb.com/download-center#community

根據所需下載相應版本的mongodb安裝包

雙擊安裝包後,點擊運行

進入到mongodb的安裝頁面,點擊Next進行下一步

選擇同意後,點擊Next進行下一步

在這裏不建議改變安裝目錄,直接點擊Complete進行下一步

點擊Install進行安裝

等待安裝的進度條完成

安裝的進度條完成之後,會進入完成頁面,點擊Finish 就完成了mongodb數據庫的安裝

 

 

完成已上爲步驟,就安裝成功了

 

2.檢測mongodb是否安裝成功,並配置啓動命令

在mongodb的安裝目錄的bin目錄下,打開cmd命令行,輸入命令 ‘ mongod –help ’出現下圖現在這安裝成功

設置數據和日誌的儲存位置和配置mongodb服務

(1)設置數據文件和日誌文件儲存位置

按自己的愛好設置文件的儲存位置,本安裝文檔的儲存位置設置在E盤,目錄如下

E:\MongoData

├─data   #MongoDB數據庫中的數據的儲存位置

└─log    #MongoDB數據庫中的日誌的儲存位置

    └─mongodb.log   # MongoDB數據庫中的日誌的儲存文件   (創建方式:創建一個txt,把後綴名改爲log)

(2)配置mongodb服務

    1/設置mongodb的環境變量

    計算機>右鍵>屬性>高級系統設置>環境變量>找到系統變量中的path變量

 

    向path變量的結尾處添加mongodb的安裝目錄下bin目錄的地址(如果原來的path路徑後面沒有分號,需要添加一個英文的分號再添加mongodb的目錄)

    如果按本文檔安裝的mongodb安裝目錄下bin目錄爲:

    C:\Program Files\MongoDB\Server\3.4\bin

    設置完成後依次點擊確定,就設置好了mongodb的環境變量了

 

    2/安裝mongodb服務

    

    第一步:按照設置的儲存位置,修改下面的命令

    (ps:如果是按本文檔設置的儲存位置,不用在做更改)

mongod --logpath "E:\MongoData\log\mongodb.log" --logappend --dbpath "E:\MongoData\data" --directoryperdb --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install

#命令中字段的說明

***  --logpath   指定MongoDB日誌文件的存儲路徑,注意是指定文件不是目錄

***  --logappend  使用追加的方式寫日誌

***  --dbpath   指定數據庫數據的存儲路徑

***  --directoryperdb  每個DB都會新建一個目錄

***   --serviceName   指定服務名稱

***  --serviceDisplayName  指定服務名稱,有多個mongodb服務時執行。

***  --install  指定作爲一個Windows服務安裝。

    第二步:在開始處用管理員身份打開cmd命令行,輸入上面第一步修改好的指令回車(ps:一定要以管理員身份運行),(運行完成沒有任何錯誤提示,表示設置成功)

    

    第三步:啓動mongodb服務

    Net start MongoDB

    第四步:關閉mongodb服務

    Net stop MongoDB

 

mongodb操作


 

管理員身份運行cmd,然後執行 mongo,進入mongodb的命令狀態

 

 show dbs 顯示當前的數據庫,前面兩個是自帶的,後面兩個是我自己創建的(大家第一次使用時只有前面兩個數據庫)

 

 use 數據名    切換數據庫 或 創建新的數據庫,  下面我創建了一個名爲demo3的數據庫

 

 

 db.createCollection("表名字")   向數據庫裏面添加表  ,下面 創建了一個表 t1

 

db 顯示當前正在使用的數據庫

show tables 顯示數據庫下的表  

 

再創建一個表 t2

 

db.表名.drop()  用來從數據庫中刪除一個表

下圖命令刪除了 t1表,返回true表示刪除成功,再顯示錶的時候 t1就沒有了

db.dropDatabase() 刪除當前正在使用的數據庫

上圖刪除了 demo3, 然後顯示數據庫的時候就沒有demo3了

 

我們重新創建 demo3數據庫,然後插入 t1表,然後插入數據

插入數據  db.表名.insert({});   參數中傳入json數據,當插入成功以後,系統會自動給數據添加一個獨一無二的 _id

使用 db.表名.find()查看數據

查詢的時候可以帶參數,傳入查詢的 json即可。下面我們先添加了兩條數據(注意:添加的數據name 分別爲 zhangsan1  、 zhangsan2,插入不同值方便後面使用),然後實現了帶參數和不帶參數的查詢,結果不同

 

修改數據 update({修改的條件},{修改器:{修改內容}},第三個參數,第四個參數)

修改器:  $set 修改    $unset刪除字段  $inc 當於編程語言中的 “+=”

第三個參數的意思是,如果不存在update的記錄,是否插入objNew,true爲插入,默認是false,不插入。

第四個參數 ,默認是false,只更新找到的第一條記錄,如果這個參數爲true,就把按條件查出來多條記錄全部更新。

 

下面我們來修改一條數據,修改器使用 $set

運行後下面代碼後,我們發現 name爲zhangsan的數據中的 age被修改爲了50  (原來是25)

 

刪除數據的字段,使用 $unset

下面代碼刪除了 name爲zhangsan 的數據的 age屬性 (age後面的屬性值任意寫,因爲是刪除,寫多少都沒有意義,但需要寫一個json格式)

 

 +=  某條數據,使用$inc  

下面代碼將 name 爲 zhangsan2的數據的  age上疊加10 ,(原來是25,執行以後變成了 35)

Mongo中支持使用 js代碼,包括申明變量、循環等等

下面的循環插入10條數據。(雖然提示 nInserted:1 ,但已經插入了10條數據)

查詢就可以看到這10條數據了。

 

 

查詢json支持高級篩選方式   

$lt  小於      <

$gt  大於      >

$gte 大於等於  >=

$lte 小於等於  <=

如:

db.t1.find({age:{$lt:5}})   就可以查找age小於5的全部數據

db.t1.find({age:{$lt:5,$gt:1}})   就可以查找age小於5大於1 的全部數據     (多個篩選條件之間使用逗號分隔    )

 

導入導出

  導出:mongoexport可以把一個collection導出成JSON格式或CSV格式的文件。可以通過參數指定導出的數據項,也可以根據指定的條件導出數據。

  、語法:

        mongoexport -d dbname -c collectionname -o file --type json/csv -f field

        參數說明:

            -d :數據庫名

            -c :collection名

            -o :輸出的文件名

            --type : 輸出的格式,默認爲json

            -f :輸出的字段,如果-type爲csv,則需要加上-f "字段名"

    、示例:

        mongoexport -d mongotest -c users -o D:/users.json --type json -f  "_id,user_id,user_name,age,status"

 導入:

 、語法:

        mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field

        參數說明:

            -d :數據庫名

            -c :collection名

            --type :導入的格式默認json

            -f :導入的字段名

            --headerline :如果導入的格式是csv,則可以使用第一行的標題作爲導入的字段

            --file :要導入的文件

 

   、示例:

        mongoimport -d mongotest -c users --file D:/users.json --type json

 

基本的操作就講這麼多,希望大家把上面的命令都寫完。

 

明天我們講解:node.js操作mongodb,及操作方法的封裝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章