1. 程式人生 > >node.js零基礎詳細教程(6):mongodb數據庫操作

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

insert lte 數組 執行 cmd命令行 tables 頁面 down 切換

第六章 建議學習時間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條數據。(雖然提示 nInserted1 ,但已經插入了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數據庫操作