1. 程式人生 > 實用技巧 >NoSQL資料庫-MongoDB 學習(一)

NoSQL資料庫-MongoDB 學習(一)

基本介紹

  • MongoDB 是為了快速開發網際網路 Web 應用而設計的資料庫系統
  • MongoDB 的設計目標是極簡、靈活、作為 Web 應用棧的一部分
  • MongoDB 的資料模型是面向檔案的,所謂檔案是一種類似於 JSON 的結構,所以我們可以簡單的理解為MongoDB 中存放的是各種各樣的 JSON(其實是BSON)

三個概念

  • 資料庫(database):資料庫是一個倉庫,存放集合
  • 集合(collection):集合類似於陣列,存放檔案
  • 檔案(document):檔案資料庫中的最小單位,我們儲存和操作的內容都是檔案

安裝與啟動(Windows)

安裝:

  1. 下載地址:https://www.mongodb.org/dl/win32/
  2. 下載後一路 next,傻瓜式安裝,想修改安裝路徑就改一下
  3. 配置環境變數:找到安裝位置,將 bin 資料夾的位置新增到環境變數 path 中
  4. 在 C 盤根目錄建立一個 data 資料夾,data 裡面建立一個 db 資料夾。(不在 C 盤建立也可以,不過啟動的時候需要加上 --dbpath 路徑

命令列啟動(不推薦):

  1. 開啟 cmd 視窗,輸入 mongod 來啟動伺服器,出現如下介面即可。

    預設埠 27017,可以通過 --port 埠號 來指定。

  2. 瀏覽器訪問:localhost:27017,出現如下介面

  3. 再開啟一個 cmd 視窗,輸入 mongo 啟動客戶端,之後就可以對資料庫進行操作了

建立服務的方式啟動(推薦)

以命令列的方式啟動有些麻煩,而且開啟的 cmd 視窗關閉後 mongodb 服務也會關閉,因此我們需要將其設定為後臺執行

  1. 在 C 盤建立 data 資料夾,data 下建立 db 和 log 資料夾

  2. 在安裝目錄(bin 的同級目錄)新增一個 mongod.cfg 檔案,新增如下內容

    systemLog:
    destination: file
    path: c:\data\log\mongod.log
    storage:
    dbPath: c:\data\db
  3. 以管理員身份開啟 cmd 視窗,輸入以下命令(將其中的路徑改為自己安裝的路徑)

    sc.exe create MongoDB binPath= "\"D:\devtools\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"D:\devtools\MongoDB\Server\3.4\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"

  4. 開啟服務列表,右鍵啟動 MongoDB

  5. 如果啟動失敗,證明上邊的操作有誤,在控制檯輸入 sc delete MongoDB 刪除之前配置的服務,然後從第一步再來一次。

基本命令

  • show dbs / show databases:顯示所有的資料庫
  • use <database name>:使用指定資料庫
  • db:檢視當前正在使用的資料庫
  • show collections:檢視當前資料庫中所有的集合

CRUD 操作

格式:db.集合名.操作(資料)

  1. 增加

    /*在 person 集合中增加一個檔案*/
    db.person.insertOne({name: "張三", age: 20, gender: "male"}) /*在 person 集合中增加一個或多個檔案*/
    db.person.insert([{name: "張三", age: 20, gender: "male"},{name: "李四", age: 30, gender: "male"}]) /*插入多個也可以通過insertMany實現*/
    db.person.insertMany(...)
  2. 查詢

    /*查詢 person 集合下所有檔案*/
    db.person.find() /*查詢一個*/
    db.person.findOne() /*查詢檔案數量*/
    db.person.find().count()
  3. 更新

    /*可以修改、替換集合中的一個或多個檔案*/
    db.person.update({name: "張三"}, {$set:{name: "王五"}}) /*修改集合中的一個檔案*/
    db.collection.updateOne() /*修改集合中的多個檔案*/
    db.collection.updateMany() /*替換集合中的一個檔案*/
    db.collection.replaceOne()
  4. 刪除

    /*刪除集合中的一個或多個檔案(預設刪除多個)*/
    db.collection.remove() /*刪除集合中的一個檔案*/
    db.collection.deleteOne() /*刪除集合中的多個檔案*/
    db.collection.deleteMany() /*清空一個集合*/
    db.collection.remove({}) /*刪除一個集合*/
    db.collection.drop() /*刪除一個資料庫*/
    db.dropDatabase()