Lala Code

Lala 的前端大補帖,歡迎一起鑽研前端技術😊

0%

MongoDB Shell command 常用指令

Imgur

在先前我們有安裝了 mongosh,在 bin 資料夾裡面有一個 mongosh.exe,點開來就可以下指令,指令方便查詢、新增、刪除、修改 Database 資料,此篇將列出常見的 MongoDB 指令。


資料庫顯示

顯示各個資料庫

1
show dbs

切換資料庫

切換到要操作的資料庫,如沒有此資料庫,會自動新增
use 資料庫名稱

1
use rooms

顯示所有集合

1
show collections

新增資料

insertOne()

新增一筆資料

1
db.rooms.insertOne({ "rating": 4.5, "name": "標準雙人房", "price":2500})

insertMany()

新增多筆資料

1
2
3
4
db.rooms.insertMany([
{ "rating": 4.5, "name": "標準三人房", "price":3500},
{ "rating": 5, "name": "豪華雙人房", "price":5500},
])

更新資料

updateOne()

更新一筆資料
符合此 id 的會進行修改,可針對欄位進行修改

1
2
3
4
5
6
7
8
9
10
11
db.rooms.updateOne(
{
"_id": ObjectId("63ff6df3ee1d24244d41577b")
},
{
"$set": {
"name": "標準雙人房 升級版",
"rating": 4.8
}
}
)

updateMany()

更新多筆資料
針對 rating 為 4.8 的資料,針對欄位 rating 修改為 0

1
2
3
4
5
6
7
8
9
10
db.rooms.updateMany(
{
"rating": 4.8
},
{
"$set": {
"rating": 0
}
}
)

替換資料

replaceOne()

replaceOne 只能替換整個文件

1
2
3
4
5
6
7
8
db.rooms.replaceOne(
{
"rating": 0
},
{
"name": "總統套房"
}
)

replaceMany()

1
2
3
4
5
6
7
8
db.rooms.replaceMany(
{
"rating": 0
},
{
"name": "總統套房"
}
)

刪除資料

deleteOne()

刪除一筆資料

1
2
3
4
5
db.rooms.deleteOne(
{
"_id": ObjectId("63ff6df3ee1d24244d41577b")
}
)

deleteMany()

刪除多筆資料

1
2
3
4
5
db.rooms.deleteMany(
{
"rating": 4.5
}
)

deleteMany()

刪除全部資料

1
db.rooms.deleteMany({})

尋找資料

findOne()

找到第一筆符合的資料

1
2
3
4
5
db.rooms.findOne(
{
"rating": 5
}
)

find()

找全部符合的資料
.pretty() 會將資料排版

1
2
3
4
5
6
7
db.rooms.find(
{
"rating": 5
}
)

db.rooms.find().pretty()

搜尋數值區間

  • $eq:等於
  • $ne:不等於
  • $gt:大於
  • $lt:小於
  • $gte:大於等於
  • $lte:小於等於
  • $in:存在某個值
  • $nin:不存在某個值
1
2
3
4
5
6
7
db.rooms.find(
{
rating:{
$lte: 4
}
}
)

搜尋複合條件

1
2
3
4
5
6
7
8
9
10
db.rooms.find(
{
rating: {
$gte: 4
},
price: {
$gte: 2000
}
}
)

關鍵字搜尋

利用正規表達式搜尋關鍵字

1
2
3
4
5
db.rooms.find(
{
name: /豪華/,
}
)

project

保護欄位,不顯示出的欄位
0 不顯示,1 顯示

1
2
3
4
5
6
7
8
db.rooms.find(
{
name: /豪華/,
},
{
_id: 0
}
)

尋找陣列裡的值

顯示 payment 包含信用卡的資料

1
2
3
4
5
db.rooms.find(
{
"payment":{$in:["信用卡"]}
}
)

count()

查看數量

1
db.posts.find().count()

其他常用

sort()

設定資料排序
查詢 name 為 Lala 的 document 列表,排序為由新到舊

1
db.posts.find({ "name": "Lala" }).sort({ "createdAt": -1 })

limit()

設定顯示幾筆數量
查詢 name 為 Lala 的 document 列表,顯示前 30 筆資料

1
db.posts.find({ "name": "Lala" }).limit(30)

skip()

跳過資料
查詢 comments 超過 100 的 document 列表,跳過前 30 筆資料,再顯示 30 筆資料

1
db.posts.find({ "comments": { "$gt": 100 } }).skip(30).limit(30)

$or

或者
尋找普通熱門貼文,請查詢 likes 或 (or) comments,1,000(含) 以上 的 document 列表

1
2
3
4
5
6
7
8
db.posts.find(
{ "$or":
[
{ "likes": { "$gte": 1000 } },
{ "comments": { "$gte": 1000 } }
]
}
)

push

新增陣列項目
隨意找一筆 document 資料,將 tags 欄位裡的陣列,新增一個新 tags 為 遊記

1
2
3
4
db.posts.updateOne(
{ "_id": ObjectId("64265e27811aaae6d7a2da71") },
{ "$push": { "tags": "遊記" } }
)

pull

移除陣列項目
將所有 tags 陣列裡的 感情 都移除

1
2
3
4
db.posts.updateMany(
{ "tags": "感情" },
{ "$pull": { "tags": "感情" } }
)



本站相關文章

👉 MongoDB 安裝與介紹,什麼是 MongoDB
👉 MongoDB常用工具-Compass GUI 資料庫,Atlas 雲端資料庫
👉 用 Node.js 執行 JavaScript 環境,Node.js 後端開發第一步
👉 三分鐘了解 Node.js 模組原理:import 與 export 的運作
👉 Node.js HTTP 模組 | 建立強大的伺服器端應用程式




🚀實體工作坊分享

玩轉 Web頁面的前端技術(HTML/CSS/JS) 一日體驗課

最近時賦學苑開了實體體驗課,即使你對程式碼沒有概念也能上手!Lala 會帶你一起做出一個個人品牌形象網站,帶你快速了解前端的開發流程,快跟我們一起玩轉 Web 吧!



🚀線上課程分享

線上課程可以加速學習的時間,省去了不少看文件的時間XD,以下是我推薦的一些課程
想學習更多關於前後端的線上課程,可以參考看看。

Hahow

Hahow 有各式各樣類型的課程,而且是無限次數觀看,對學生或上班族而言,不用擔心被時間綁住



六角學院

如果你是初學者,非常推薦六角學院哦!
剛開始轉職也是上了六角的課,非常的淺顯易懂,最重要的是,隨時還有線上的助教幫你解決問題!


Udemy

Udemy 裡的課程非常的多,品質普遍不錯,且價格都滿實惠的,CP值很高!
也是很多工程師推薦的線上課程網站。
❤️