學MongoDB的霧煞煞心得+基本差異整理

更新於 發佈於 閱讀時間約 5 分鐘

原本學SQL的時候,心想:原來這就是資料庫啊!太燒腦了吧(以前怎麼傻傻的以為Excel就夠用了)
結果後來老師說,還有NoSQL喔!那我們來下載MongoDB吧!
簡直是晴天霹靂,我的Notion筆記已經長到可以用滑鼠滾輪往下滾20下還沒結束🥲

MongoDB…我還去查了正確發音:https://www.youtube.com/watch?v=WyA82fatN6A

真的是令我一頭霧水,特別是跟上週學的關聯式資料庫差異很大。
一開始搞不清楚哪時候該用什麼符號,整個人卡在這些神秘符號裡:
-什麼時候該用 { } 大括號?有時大括號裡又有大括號,到底要包幾個?
-什麼時候用 [ ] 中括號?
-單引號’ ’好多!
-還有$符號,到底…
-還有Add Stage?!?!pipeLine?!?!
-還有讀寫資料(甚至MP3、圖片、影片也可以)

感覺就像打開了一本魔法書,裡面全是咒語,超難懂。(應該說眼睛看懂了,腦子跟不上🥲)

raw-image

接著我發現MongoDB跟Python也不太一樣,雖然文件的概念有點像Python裡的字典,但MongoDB的查詢語法還多了很多特殊符號跟操作指令。像Python的dict和list好不容易熟悉了,結果看到{ }跟[ ]在MongoDB又變成其他用法(救命)MongoDB還有$gt、$regex、$set…這種符號來下條件,燒腦了。

然後Compass的介面也需要再熟悉,偶爾也要用到shell,於是就這樣在Compass、shell、VS CODE還有我的Notion筆記之間華麗切換✨

MongoDB 常見 $ 符號整理

MongoDB 主要用 $ 符號在兩大地方:
-查詢條件與更新操作的運算符
-聚合管線 (Aggregation Pipeline) 階段與操作符

1. 查詢與更新常用的 $ 運算符

raw-image

更新操作符

raw-image

2. 聚合 $ 符號
管線階段 (pipeline stages)

raw-image

聚合表達式 (aggregation expressions)

raw-image

❓MongoDB Pipeline 是什麼

MongoDB 的 pipeline 就是一串「資料處理步驟」,資料會像流水線一樣,從第一個步驟開始,經過一個接一個的處理,最後吐出你想要的結果。

每個步驟都叫做一個 stage(階段),stage 用 $ 開頭像 $match、$group、$sort 等等。每個階段都會對文件做操作,比如:

-篩選($match)
-分組($group)
-排序($sort)
-拆解陣列($unwind)

然後下一個階段會拿前面處理完的結果繼續處理。(所以stage如果用不到就要刪掉,不然會影響到結果!)

譬如,我想買咖啡,流程是:

-挑豆子(篩選出好豆) → $match
-把豆子磨粉 → $project
-分批包裝(分組統計) → $group
-排隊出貨 → $sort

資料按照一個個stage過關,最後變成我們想要的「乾淨結果」。
一次串接多個操作,不用一個步驟一個步驟慢慢跑,可以做統計、轉換、展開陣列等比較複雜的分析!

總結

  • 查詢、過濾、更新常用 $ 運算符
  • 聚合管線階段跟表達式都用 $ 開頭
  • 陣列操作符特別多,推陣列、拉陣列用 $push、$pull 等

為了避免搞混,我試了這幾招:

  1. 分清「語言」與「資料結構」的界線
  • 把 Python 當作「程式語言」,MongoDB 查詢語法當成「資料庫的查詢語言」。
  • 兩者用處不同,並不是完全使用 Python 思維寫 MongoDB 查詢。

2. 用類比幫助理解

  • 把 MongoDB 文件想像成「Python 裡的 dict,但更像一份資料清單」。
  • 把 $gt 等符號想成資料庫的關鍵字,而不是 Python 裡的函式。

3. 多寫多試,讓手感帶動腦袋

  • 把理論放一邊,直接用 pymongo 嘗試增刪查改。
  • 遇到不懂的指令,查官方文件、看範例,邊改邊跑。

4. 保持耐心,允許自己「一時混亂」

  • 這種思維切換一開始一定會不順,給自己時間慢慢適應。
  • 想到小時候連注音符號都認不得時,卻會背弟子規,之後就慢慢能理解意涵了✨

基本差異整理

raw-image


留言
avatar-img
留言分享你的想法!
avatar-img
Galing的腦內劇場
0會員
9內容數
學習AI的新手,在這邊分享學習筆記跟知識,希望文組轉戰AI也可以闖出一片天💪 大學學的是戲劇,擁有服務業12年經驗,擔任銷售顧問;2025.07開始學習python與AI商業應用,目標是讓職涯變得更自由有彈性,做出好玩有趣的東西! 💬喜歡打電動、看動畫、K-pop佛系追星,偶爾可能會出現這些主題的文章。
Galing的腦內劇場的其他內容
2025/08/09
(本篇為心得分享,不是教學文唷> <) 曾經在網路上看到一段話,原文找不到,大意大概是:「現代人一天接觸到的訊息量,比中世紀的人一輩子接觸到的還多。」,雖然不確定怎麼研究出這個數據的,不過的確很符合現在的世代呀!
Thumbnail
2025/08/09
(本篇為心得分享,不是教學文唷> <) 曾經在網路上看到一段話,原文找不到,大意大概是:「現代人一天接觸到的訊息量,比中世紀的人一輩子接觸到的還多。」,雖然不確定怎麼研究出這個數據的,不過的確很符合現在的世代呀!
Thumbnail
2025/08/08
學習Python大概一個半月了,老師出Leetcode上的Valid Sudoku當作業給我們練習,也就是寫出一隻程式,檢查9X9的數獨直排、橫排、小宮格是否合理。我覺得是一個很棒的綜合練習!
Thumbnail
2025/08/08
學習Python大概一個半月了,老師出Leetcode上的Valid Sudoku當作業給我們練習,也就是寫出一隻程式,檢查9X9的數獨直排、橫排、小宮格是否合理。我覺得是一個很棒的綜合練習!
Thumbnail
2025/08/06
Storybook啟動方式超簡單! 進入連結後按Start Story,接著會看到一個輸入框,提示你輸入一段故事開頭或主題。 prompt建議:給它目標對象、故事情節、插畫風格、故事基調 然後按下「Submit」,大概等待3分鐘,10頁繪本就完成了。
Thumbnail
2025/08/06
Storybook啟動方式超簡單! 進入連結後按Start Story,接著會看到一個輸入框,提示你輸入一段故事開頭或主題。 prompt建議:給它目標對象、故事情節、插畫風格、故事基調 然後按下「Submit」,大概等待3分鐘,10頁繪本就完成了。
Thumbnail
看更多
你可能也想看
Thumbnail
只需要一個資料庫就可以做到各種不同的用途顯示 像紙本的五年手帳一樣,可以自動回顧「過去的今天」的日記模板要如何設定? 函數設定的思路與教學都在這邊了! 免費日記模板下載
Thumbnail
只需要一個資料庫就可以做到各種不同的用途顯示 像紙本的五年手帳一樣,可以自動回顧「過去的今天」的日記模板要如何設定? 函數設定的思路與教學都在這邊了! 免費日記模板下載
Thumbnail
※ 為什麼選擇SQLite? 安裝簡單:SQLite是一個零配置的資料庫,不需要複雜的設定和安裝過程。。 使用SQL語法。 設計選擇多元性(MySQL / SQLite):適合於小零件資料應用、嵌入式系統、物聯網設備。 ※ SQLite四大優點: 執行檔檔案很小:資料庫系統需要的磁碟空
Thumbnail
※ 為什麼選擇SQLite? 安裝簡單:SQLite是一個零配置的資料庫,不需要複雜的設定和安裝過程。。 使用SQL語法。 設計選擇多元性(MySQL / SQLite):適合於小零件資料應用、嵌入式系統、物聯網設備。 ※ SQLite四大優點: 執行檔檔案很小:資料庫系統需要的磁碟空
Thumbnail
這篇文章主要是介紹了SQL查詢效能調校的方法,針對索引最佳化做了整理和分享,並提供了一些注意事項和建議。
Thumbnail
這篇文章主要是介紹了SQL查詢效能調校的方法,針對索引最佳化做了整理和分享,並提供了一些注意事項和建議。
Thumbnail
學習如何使用Python連接MongoDB進行憑證監控,包括建立MongoDB docker-compose、連接MongoDB、讀取yaml並寫入MongoDB、傳入env以及domain寫入MongoDB、讀取MongoDB、修改MongoDB、刪除MongoDB。
Thumbnail
學習如何使用Python連接MongoDB進行憑證監控,包括建立MongoDB docker-compose、連接MongoDB、讀取yaml並寫入MongoDB、傳入env以及domain寫入MongoDB、讀取MongoDB、修改MongoDB、刪除MongoDB。
Thumbnail
本文主要在討論以 Docs as Code 方法來撰寫技術文件,此做法能否滿足企業內部對知識管理的需求。
Thumbnail
本文主要在討論以 Docs as Code 方法來撰寫技術文件,此做法能否滿足企業內部對知識管理的需求。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
本篇文章將教你如何在Kubernetes cluster內部署一個MongoDB,包括取得Manifests、建立Volume、部署實務、基本操作和結論。透過操作演示,讓你瞭解在實務上如何成功建立MongoDB,並進行基本操作。
Thumbnail
本篇文章將教你如何在Kubernetes cluster內部署一個MongoDB,包括取得Manifests、建立Volume、部署實務、基本操作和結論。透過操作演示,讓你瞭解在實務上如何成功建立MongoDB,並進行基本操作。
Thumbnail
詳細解說如何在 Mac 上透過 Docker 安裝 MongoDB 社群版。包括 MongoDB Compass 的安裝與配置,以及 MongoDB Shell 的使用方法,為開發者提供 MongoDB 學習資源。
Thumbnail
詳細解說如何在 Mac 上透過 Docker 安裝 MongoDB 社群版。包括 MongoDB Compass 的安裝與配置,以及 MongoDB Shell 的使用方法,為開發者提供 MongoDB 學習資源。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News