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.在官網上下載所需的安裝軟件
下載地址: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數據庫中的日誌的儲存文件
(2)配置mongodb服務
1/設置mongodb的環境變量
計算機>右鍵>屬性>高級系統設置>環境變量>找到系統變量中的path變量
向path變量的結尾處添加mongodb的安裝目錄下bin目錄的地址
如果按本文檔安裝的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.collection.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 的全部數據 (多個篩選條件之間使用逗號分隔 )
基本的操作就講這麽多,希望大家把上面的命令都寫完。
明天我們講解:node.js操作mongodb,及操作方法的封裝
node.js零基礎詳細教程(6):mongodb數據庫操作