MongoDB學習筆記 - MongoDB Shell CRUD語法

這裡記錄了使用MongoDB作為資料庫,與雲端MongoDB Atlas操作記錄,在Jamstack的時代,Mongodb是非常普遍且主流的做法之一。

  • Shell語法主要用於終端機的操作
  • 透過MongoDB shell語法去操作 MongoDB Server
  • MongoDB 版本5.0
  • 👉 官網範例

2022-03-31_1.png


顯示資料庫

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

切換資料庫

> use [資料庫名稱]
switched to db [資料庫名稱]

插入一筆/多筆資料

> db.rooms.insertOne({"rating":4.5,"price":1000,"name":"標準單人房"})
{
	"acknowledged" : true,
	"insertedId" : ObjectId("62452ea200215a13d32151f4")
}

使用Compass GUI 查看本地端DB

2022-03-31_2.png


更新與取代

> db.rooms.updateOne(
    {
     "_id": ObjectId("62455ea400215a13d32151f6")
    },
    { $set:
      {
        "name": "豪華單人房限定版",
        "rating": 4.3
      }
    }
)
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
  • 找到並且修改一筆成功
> db.rooms.updateMany(
    {
     "rating": 4.3
    },
    { $set:
      {
        "rating": 4.0
      }
    }
)

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }
  • 找到並且修改兩筆成功

  • replaceOne() 會取代整個資料結構,不用寫$set

> db.rooms.replaceOne(
  {
   "name": "標準單人房"
  },
  {
    "name": "標準單人房升級版"
  }
)

{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

2022-03-31_3.png

  • 除了name以外其他屬性都沒了

刪除

> db.rooms.deleteOne(
  {
   "_id": ObjectId("62455ea400215a13d32151f7")
  }
)

{ "acknowledged" : true, "deletedCount" : 1 }
  • 刪除多筆
> db.rooms.deleteMany(
  {
   "rating": 4
  }
)

{ "acknowledged" : true, "deletedCount" : 2 }

練習用JSON

[
    {
        "rating": 4.5,
        "price": 1000,
        "name": "標準單人房",
        "payment":["信用卡","ATM"]
    },
    {
        "rating": 4.3,
        "price": 1500,
        "name": "豪華單人房",
        "payment":["信用卡","ATM"]
    },
    {
        "rating": 4.8,
        "price": 2000,
        "name": "標準雙人房",
        "payment":["信用卡","ATM"]
    },
    {
        "rating": 4.7,
        "price": 2500,
        "name": "豪華雙人房",
        "payment":["ATM"]
    },
    {
        "rating": 4.0,
        "price": 3000,
        "name": "標準四人房",
        "payment":["現金"]
    },
    {
        "rating": 3.5,
        "price": 10000,
        "name": "總統套房",
        "payment":["現金"]
    }
]

MongoDB 相關文章:

© Justin 2022, Built with Gatsby