第六章 建議學習時間4小時 課程共10章node
學習方式:詳細閱讀,並手動實現相關代碼mysql
學習目標:此教程將教會你們 安裝Node、搭建服務器、express、mysql、mongodb、編寫後臺業務邏輯、編寫接口,最後完成一個完整的項目後臺,預計共10天課程。sql
數據庫mongodb
數據庫管理結構,通常分爲兩種:B/S架構 C/S架構。數據庫
B/S架構: Browser/Server,瀏覽器/服務器模式,即經過瀏覽器和服務器端的數據庫進行交互express
C/S架構: Client/Server,客戶端/服務器模式,即經過客戶端和服務器的數據庫進行交互(咱們使用的cmd命令行就能夠算是一個客戶端)編程
數據庫根據數據結構分爲:關係型數據庫和非關係型數據庫json
關係型數據庫就如通常很規整的表格,能夠根據橫向縱向去定位某條數據,以下圖數組
通常的數據庫都是關係型數據庫 ,如 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格式的文件。能夠經過參數指定導出的數據項,也能夠根據指定的條件導出數據。
導入:
基本的操做就講這麼多,但願你們把上面的命令都寫完。
明天咱們講解:node.js操做mongodb,及操做方法的封裝