1. 程式人生 > >mongoDB使用詳解(在node中使用)

mongoDB使用詳解(在node中使用)

資料庫概念

資料庫:資料儲存的倉庫

資料庫就是為我們方便的管理資料的一個平臺,例如對資料的儲存、修改、查詢等都非常的方便。

資料庫分類

資料庫產品有很多,以下是一些常見的資料庫產品:

  • MySQL
  • Oracle
  • DB2
  • SqlServer
  • MongoDB
  • etc.

資料庫沒有排名之分,各有各的應用場景,我們這裡學習的是 MongoDB 資料庫。

MongoDB 資料庫

為了更好的學習 MongoDB 資料庫,大家可以參考菜鳥教程上的 MongoDB 資料庫教程文件,
連結地址:http://www.runoob.com/mongodb/mongodb-tutorial.html

mongodb資料庫官網:https://www.mongodb.com/

下載地址:https://www.mongodb.com/download-center?jmp=nav
選擇好對應的版本下載即可

為什麼選擇MongoDB?

理由:

    1.只要會js就會mongodb(學習成本低)
    2.mongodb對js的相容性最好
    3.mongodb存資料就是存JSON

安裝與配置 MongoDB 資料庫環境

詳情見視訊:

怎麼驗證安裝成功:
    在cmd終端中輸入: mongo --version 或是 mongod --version ,能看到版本好,說明安裝成功

如果終端中輸入 mongo --version 提示找不到命令,一定要看看是不是沒有配置mongodb的環境變數,並且配置環境變數之後一定要記得重啟cmd

window7安裝MongoDB存在的問題

建議:升級到window10

解決步驟:
    1.將你的作業系統升級到window7最新版
    2.安裝 vc_redist.x64.exe 
    3.如果你的電腦是32位的,再安裝32位的mongodb軟體 mongodb-win32-i386-3.2.11-signed.msi

MongoDB 資料庫儲存結構

和Excel對比一下即可明白:


核心思想:
    1.分門別類的儲存資料
    2.mongodb是以`集合`的概念來區分不同資料的,比如使用者集合,商品集合,訂單集合等等,不同的資料要放在不同的集合中去統一管理
    3.集合裡面儲存的可以認為是一個數組
    4.陣列中的每一個物件,可以認為就是JSON物件,在mongodb中我們稱之為 `文件`
    5.文件的結構可以隨意,但是必須統一,也就是說,同一個集合中,所有的文件一定要遵守相同的資料結構

其他:
    `集合`的作用就是用來隔離資料,分門別類的儲存資料

操作MongoDB的步驟

1.建立資料庫中資料的儲存目錄
2.啟動MongoDB的服務例項
3.建立資料庫
4.建立集合
5.建立文件

MongoDB使用之前必做步驟1--建立資料目錄(必須)

我們在安裝完成MongoDB後需要建立一個存放資料的目錄。請注意,資料目錄應該放在根目錄下((如: C:\ 或者 D:\ 等 ),資料目錄的命名隨意,比如我就命名 mongodb_datas

MongoDB使用之前必做步驟2--啟動伺服器(必須)

啟動MongoDB伺服器的方式一:通過終端指令去啟動

    1.首先在終端切換到你的MongoDB的安裝目錄的bin目錄下(當然如果配置了環境變數在哪個目錄下都可以了)

    2.在終端執行: mongod.exe --dbpath c:\mongodb_datas ,如果成功啟動就表示一切都OK了

    注意點:
        1.32 位版本使用下面的命令啟動資料服務:
        ```
        mongod --dbpath 資料儲存路徑 --journal --storageEngine=mmapv1
        ```

        2.執行完上面的命令併成功開啟 MongoDB 資料服務例項之後,就把該控制檯最小化到一邊就可以了,
        千萬不要關閉,否則無法連線,如果對資料庫的操作結束,可以開啟該控制檯通過 `Ctrl + C` 關閉。

啟動MongoDB伺服器的方式二:方式一的延續,把上面的指令做成一個批處理檔案.bat


啟動MongoDB伺服器的方式三:將MongoDB伺服器作為Windows服務執行

    請注意,你必須有管理許可權才能執行下面的命令。執行以下命令將MongoDB伺服器作為Windows服務執行:

    mongod.exe --bind_ip yourIPadress --logpath "C:\data\dbConf\mongodb.log" --logappend --dbpath "C:\data\db" --port yourPortNumber --serviceName "YourServiceName" --serviceDisplayName "YourServiceName" --install

    例子:
        mongod.exe --bind_ip 127.0.0.1 --logpath "C:\mongodb_datas\server_log\mongodb.log" --logappend --dbpath "c:\mongodb_datas" --port 27017 --serviceName "MongoDBServer" --serviceDisplayName "MongoDBServerDisplayName" --install


    補充:從Windows服務中解除安裝 MongoDB服務
        1.先停止要刪除的服務(比如MongoDBServer)
        2.以管理員身份執行cmd,在cmd中輸入: sc delete 服務名稱(比如MongoDBServer)

    注意點:
        1.mongodb.log 這個日誌檔案一定要先建立好,才能執行指令
        2.必須要以管理員的身份開啟cmd視窗,並執行

如何連線到MongoDB伺服器並且操作它?

注意:在進行連線之前請確保你的服務例項是開啟狀態的(不要關閉剛才開啟的資料服務例項)。

可以使用兩種方式來連線到MongoDB伺服器並且操作它

連線方式1:使用MongoDB自帶的MongoDB後臺管理 Shell
    在終端中輸入 mongo 或是 mongo --host 127.0.0.1 --port 27017

    mongo 命令預設去連線本機上的 MongoDB 服務例項:`127.0.0.1:27017`,可以通過下面的命令
    指定連線的主機名和埠號:
    ```
    mongo --host 127.0.0.1 --port 27017
    ```

    如果看到類似於如下的字樣說明連線成功:
    ```
    MongoDB shell version v3.4.2
    connecting to: mongodb://127.0.0.1:27017
    MongoDB server version: 3.4.2
    Server has startup warnings:
    2017-01-18T18:49:53.865+0800 I CONTROL  [initandlisten]
    2017-01-18T18:49:53.865+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
    2017-01-18T18:49:53.866+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
    2017-01-18T18:49:53.866+0800 I CONTROL  [initandlisten]
    >
    ```
    如果提示 “無法連線主機”,請檢查你的 MongoDB 資料服務例項是否開啟。

操作方式1:在終端中使用mongodb的指令進行操作

        常見指令:
            見下一個知識點


連線及操作方式2:使用圖形化客戶端工具:
    robomongo(跨平臺) : https://robomongo.org/download

基本操作命令

可以參考:
    http://www.yiibai.com/mongodb/mongodb_create_collection.html

    http://www.runoob.com/mongodb/mongodb-tutorial.html
  • show dbs
    • 檢視當前服務例項上所有的資料庫
  • use 資料庫名稱
    • 如果資料庫不存在,則建立資料庫,否則切換到指定資料庫。
  • db
    • 檢視當前所處的資料庫
  • show collections
    • 檢視當前資料庫中所有的集合
  • db.createCollection("集合名稱")
    • 建立集合
  • db.集合名稱.insert({資料文件})
    • 插入的每一條文件會自動幫我們生成一個_id欄位,它是mongodb自動維護的,不需要我們關心
  • db.集合名稱.find()
    • 查詢指定集合中所有的資料
    • 可以通過 db.集合名稱.find().pretty() 美化輸出格式
    • 預設是查詢所有,可以通過:db.集合名稱.find({查詢條件}) 按條件查詢集合中的資料
  • db.集合名稱.update({更新條件}, {要更新的欄位})
    • 更新指定集合資料,注意點,要更新的欄位一定要這樣寫 {$set:{欄位的名稱:欄位的值}},
  • db.集合名稱.remove({刪除條件})
    • 刪除指定集合中的資料
  • exit 退出當前操作
  • cls 清屏

    注意點:更新和刪除時一般都需要帶條件,除非是全部更新與全部刪除,不過全部更新與全部刪除這樣很危險,實際操作過程中很少

使用 Node 操作 MongoDB

安裝 MongoDB 官方提供的驅動包:

npm install --save mongodb

具體操作方式請參考官方文件:https://www.npmjs.com/package/mongodb