自 2010 年 · 每月支援超過 200 萬次工具執行
自 2010 年
加到 Chrome

我的工具箱

自動模式

尚未收藏任何工具。

升級為高級版
相關工具
AI SQL 查詢產生器文字轉SQL列表轉換器SQL格式化工具SCSS轉CSS編譯器
主頁 > 文本工具 > 其他文字工具
 

SQL到MongoDB查詢轉換器

把 SQL 查詢(SELECT、INSERT、UPDATE、DELETE)轉成 MongoDB shell 語法。附逐句對應、聚合管線、即時語法標示,以及可直接貼上的 mongosh 輸出。

免費使用無需註冊即時出結果
SQL到MongoDB查詢轉換器立即免費試用 ▼
SQL MongoDB
⚡ 快速示例(點擊加載)

Embed SQL到MongoDB查詢轉換器 Widget

SQL到MongoDB查詢轉換器

歡迎使用 SQL到MongoDB查詢轉換器,這是一個在線工具,可以將 SQL 查詢(SELECT、INSERT、UPDATE 和 DELETE)翻譯成簡潔、可直接貼上的 MongoDB shell 語法。每次轉換都附帶 子句對子句映射,精確顯示每個 SQL 關鍵字如何變為其對應的 MongoDB 語法,使此工具既是轉換器,也是開發人員從關聯式資料庫遷移到 MongoDB 的學習輔助工具。

為什麼要使用這個 SQL到MongoDB查詢轉換器?

大多數在線轉換器只是簡單地給出一個 JSON 區塊,讓你猜測發生了什麼。這個工具不同:你可以看到生成的 MongoDB 查詢 以及 逐步映射,解釋為什麼每個子句會按那樣的方式轉換。這使得它在遷移期間進行快速翻譯,以及透過現有的 SQL 知識學習 MongoDB 查詢語言時同樣有用。

主要功能

這個轉換器可以將哪些 SQL 語句翻譯成 MongoDB?

此工具可轉換 SELECT, INSERT, UPDATEDELETE 語句。SELECT 支援 WHERE, ORDER BY, GROUP BY, HAVING, LIMIT, OFFSET, DISTINCT 以及五個標準聚合函數:COUNT, SUM, AVG, MIN 和 MAX。包含 AND, OR, NOT, IN, NOT IN, BETWEEN, LIKE, IS NULL 和 IS NOT NULL 的複雜 WHERE 子句都能清晰地映射到 MongoDB 運算子。

子句對子句的映射是如何運作的?

每次轉換後,工具會顯示一個表格,將每個 SQL 子句與其 MongoDB 等效項對齊。例如:

SQL: SELECT name, age FROM users WHERE age > 21 ORDER BY age DESC LIMIT 10
MongoDB: db.users.find({ age: { $gt: 21 } }, { name: 1, age: 1, _id: 0 }).sort({ age: -1 }).limit(10)
映射:
· FROM usersdb.users
· SELECT name, age → projection { name: 1, age: 1, _id: 0 }
· WHERE age > 21 → filter { age: { $gt: 21 } }
· ORDER BY age DESC.sort({ age: -1 })
· LIMIT 10.limit(10)

它能處理 GROUP BY 查詢的聚合管道嗎?

是的。當 SQL 使用 GROUP BY、HAVING 或聚合函數時,轉換器會生成完整的 MongoDB 聚合管道:分組前的 $match(來自 WHERE)、帶有 _id 和累加器的 $group、分組後的 $match(來自 HAVING),然後按管道順序排列 $sort$skip$limit。順序很重要 —— 在 MongoDB 中,先執行 $sort 再執行 $match 會慢得多 —— 因此工具始終以最佳順序發出各階段。

示例: SELECT category, COUNT(*) AS total FROM books WHERE year >= 2020 GROUP BY category HAVING COUNT(*) > 5 ORDER BY total DESC LIMIT 5

轉換為:
db.books.aggregate([
  { $match: { year: { $gte: 2020 } } },
  { $group: { _id: "$category", total: { $sum: 1 } } },
  { $match: { total: { $gt: 5 } } },
  { $sort: { total: -1 } },
  { $limit: 5 }
])

SQL LIKE 模式是如何轉換的?

SQL 的 % 通配符在 MongoDB 正則表達式中變為 .*,而 _ 通配符變為 .。當 SQL 模式不以 % 開頭或結尾時,模式會加上 ^$ 錨點。模式中的正則表達式特殊字元會自動轉義。

SQL 和 MongoDB 查詢之間的主要區別是什麼?

SQL 是聲明性的且以資料表為中心 —— 你描述行和列。MongoDB 是以文件為中心,並使用類似 JSON 的查詢語言。主要的翻譯規則:

生成的 MongoDB 查詢可以直接貼入 mongosh 嗎?

是的。輸出使用 mongosh (MongoDB Shell) 語法,包括不帶引號的物件鍵、尾隨的鏈式方法如 .sort(), .limit().skip(),以及原生 JavaScript 正則表達式字面量。你可以直接將其貼入 mongosh、MongoDB Compass 的 MongoSH 選項卡或 Studio 3T 的 IntelliShell。

如何使用這個工具

  1. 貼上你的 SQL 查詢 到輸入框中,或點擊快速示例加載樣本查詢。
  2. 點擊轉換為 MongoDB。 工具會解析你的 SQL 並構建等效的 MongoDB 查詢。
  3. 查看子句對子句映射 以驗證翻譯並學習映射規則。
  4. 複製或下載 MongoDB 查詢,使用代碼塊上方的按鈕。下載的文件是即用型 .js 腳本。

實際使用場景

對於遷移到 MongoDB 的開發人員

對於學生和學習者

對於 DBA 和後端工程師

限制及目前尚未支援的內容

常見問題

為什麼我的 SELECT 查詢沒有 WHERE 卻仍然返回一個篩選物件?

MongoDB 的 find() 期望第一個參數作為篩選器。當 SQL 沒有 WHERE 子句時,工具會發出 find({}) —— 一個匹配所有文件的空篩選器。

為什麼我的投影中添加了 _id: 0?

MongoDB 在查詢結果中預設包含 _id 欄位。為了符合 SQL SELECT 僅返回所列列的行為,工具會追加 _id: 0,除非你明確將 _id 列在查詢中。

我的 UPDATE 查詢應該使用 updateOne 還是 updateMany?

工具預設發出 updateMany,這符合 SQL UPDATE 的多行語義。當你確定篩選器僅匹配單個文件時(例如,透過唯一的 _id 進行篩選),請切換為 updateOne

該工具會儲存或發送我的 SQL 到任何地方嗎?

你的 SQL 會提交到我們的伺服器進行解析,返回轉換後的 MongoDB,然後被丟棄。它不會被記錄、儲存或與任何第三方共享。

這個工具是免費的嗎?

是的,它是完全免費的,無需帳號即可使用。隨時刷新頁面即可重新開始。

它如何處理 MongoDB 的原生類型,如 ObjectId 和 Date?

SQL 字串字面量預設變為 MongoDB 字串。如果你的列存儲的是 ObjectId,請手動將字面量包裝在 ObjectId("...") 中。對於日期欄位,請將字面量包裝在 ISODate("...") 中。貼上後只需一秒鐘即可完成編輯。

其他資源

引用此內容、頁面或工具為:

"SQL到MongoDB查詢轉換器" 於 https://MiniWebtool.com/zh-tw/sql到mongodb查詢轉換器/,來自 MiniWebtool,https://MiniWebtool.com/

由 miniwebtool 團隊提供。最後更新:2026年4月25日

其他文字工具:

熱門與最新工具:

查詢字串產生器AI正規表達式產生器JSON轉YAML轉換器查看全部 →
主頁 > 文本工具 > 其他文字工具 > SQL到MongoDB查詢轉換器