ตัวแปลงคิวรี SQL เป็น MongoDB
แปลงคิวรี SQL (SELECT, INSERT, UPDATE, DELETE) เป็นไวยากรณ์ MongoDB shell พร้อมการจับคู่แบบทีละส่วน (clause-by-clause), การสร้าง aggregation pipeline, การเน้นไวยากรณ์แบบสด และผลลัพธ์ mongosh ที่พร้อมคัดลอกไปใช้งาน
ตัวบล็อกโฆษณาของคุณทำให้เราไม่สามารถแสดงโฆษณาได้
MiniWebtool ให้ใช้งานฟรีเพราะมีโฆษณา หากเครื่องมือนี้ช่วยคุณได้ โปรดสนับสนุนเราด้วย Premium (ไม่มีโฆษณา + เร็วขึ้น) หรืออนุญาต MiniWebtool.com แล้วรีโหลดหน้าเว็บ
- หรืออัปเกรดเป็น Premium (ไม่มีโฆษณา)
- อนุญาตโฆษณาสำหรับ MiniWebtool.com แล้วรีโหลด
เกี่ยวกับ ตัวแปลงคิวรี SQL เป็น MongoDB
ยินดีต้อนรับสู่ ตัวแปลงคิวรี SQL เป็น MongoDB เครื่องมือออนไลน์ที่ช่วยแปลคำสั่ง SQL ทั้ง SELECT, INSERT, UPDATE และ DELETE ให้เป็นไวยากรณ์ MongoDB shell ที่สะอาดตาและพร้อมใช้งาน ทุกการแปลงจะมาพร้อมกับ การจับคู่แบบแยกส่วนทีละ Clause ที่แสดงให้เห็นว่าคำสำคัญ SQL แต่ละตัวกลายเป็นสิ่งเทียบเท่าใน MongoDB ได้อย่างไร ทำให้เครื่องมือนี้เป็นทั้งตัวแปลงและสื่อการเรียนรู้สำหรับนักพัฒนาที่กำลังย้ายฐานข้อมูลจาก Relational มาเป็น MongoDB
ทำไมต้องใช้ตัวแปลง SQL เป็น MongoDB นี้?
ตัวแปลงออนไลน์ส่วนใหญ่มักจะแสดงแค่ JSON ก้อนใหญ่แล้วปล่อยให้คุณคาดเดาเองว่าเกิดอะไรขึ้น แต่เครื่องมือนี้แตกต่างออกไป: คุณจะเห็นทั้งคิวรี MongoDB ที่สร้างขึ้น และ การจับคู่ทีละขั้นตอนที่อธิบายว่าทำไมแต่ละ Clause ถึงถูกแปลงออกมาในรูปแบบนั้น สิ่งนี้ทำให้มันมีประโยชน์อย่างมากสำหรับการแปลคิวรีอย่างรวดเร็วในระหว่างการย้ายระบบ และสำหรับการเรียนรู้ภาษาคิวรีของ MongoDB จากความรู้ SQL เดิมของคุณ
คุณสมบัติเด่น
- รองรับ 4 ประเภทคำสั่ง: SELECT (find, distinct, countDocuments, aggregate), INSERT, UPDATE, DELETE — ครบจบในเครื่องมือเดียว
- การจับคู่ทีละ Clause: ดูว่า FROM, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT, OFFSET แต่ละส่วนเปลี่ยนเป็นตัวดำเนินการ MongoDB ได้อย่างไร
- Aggregation Pipelines อัตโนมัติ: GROUP BY, HAVING และฟังก์ชันรวมจะสร้าง aggregate([...]) pipelines ที่ถูกต้อง พร้อมขั้นตอน $match, $group, $sort, $limit ตามลำดับที่เหมาะสม
- รองรับ WHERE ที่หลากหลาย: AND, OR, NOT, วงเล็บ, IN, NOT IN, BETWEEN, LIKE, IS NULL, IS NOT NULL และตัวดำเนินการเปรียบเทียบทั้ง 6 ตัว
- ผลลัพธ์ไฮไลท์ไวยากรณ์: อ่านง่าย สามารถคัดลอกไปวางใน mongosh, MongoDB Compass หรือ Studio 3T ได้ทันที
- สรุปตัวดำเนินการ: ตารางอ้างอิงที่มองเห็นได้ตลอดเวลาพร้อมการจับคู่ SQL ↔ MongoDB ยอดนิยมกว่า 24 รายการ
- ตัวอย่างโหลดด่วน: ตัวอย่างการใช้งานจริง 9 รายการ เพียงแค่คลิกเดียว
- คัดลอกและดาวน์โหลด: คัดลอกไปยังคลิปบอร์ดด้วยคลิกเดียว หรือบันทึกเป็นไฟล์ .js
- รองรับมือถือ: เลย์เอาต์ปรับตามหน้าจอโทรศัพท์และแท็บเล็ต — แผงการจับคู่จะเรียงซ้อนกันในแนวตั้งบนหน้าจอแคบ
คำสั่ง SQL ใดบ้างที่ตัวแปลงนี้สามารถแปลเป็น MongoDB ได้?
เครื่องมือนี้แปลงคำสั่ง SELECT, INSERT, UPDATE และ DELETE โดย SELECT รองรับ WHERE, ORDER BY, GROUP BY, HAVING, LIMIT, OFFSET, DISTINCT และฟังก์ชันรวมมาตรฐานทั้งห้า: COUNT, SUM, AVG, MIN และ MAX นอกจากนี้ Clause WHERE ที่ซับซ้อนที่มี AND, OR, NOT, IN, NOT IN, BETWEEN, LIKE, IS NULL และ IS NOT NULL ทั้งหมดจะถูกจับคู่กับตัวดำเนินการของ MongoDB ได้อย่างชัดเจน
การจับคู่แบบแยกส่วนทีละ Clause ทำงานอย่างไร?
หลังการแปลงแต่ละครั้ง เครื่องมือจะแสดงตารางที่เปรียบเทียบแต่ละ Clause ของ SQL กับสิ่งที่เทียบเท่าใน MongoDB ตัวอย่างเช่น:
MongoDB: db.users.find({ age: { $gt: 21 } }, { name: 1, age: 1, _id: 0 }).sort({ age: -1 }).limit(10)
การจับคู่:
· FROM users → db.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)
รองรับ aggregation pipelines สำหรับคิวรี GROUP BY หรือไม่?
ใช่ เมื่อ SQL ใช้ GROUP BY, HAVING หรือฟังก์ชันรวม ตัวแปลงจะสร้าง MongoDB aggregation pipeline ที่สมบูรณ์: $match ก่อนการจัดกลุ่ม (จาก WHERE), $group พร้อม _id และตัวสะสมค่า, $match หลังการจัดกลุ่ม (จาก HAVING) จากนั้นตามด้วย $sort, $skip และ $limit ตามลำดับของ pipeline ลำดับนั้นสำคัญมาก เนื่องจากการทำ $sort ก่อน $match จะช้ากว่ามากใน MongoDB ดังนั้นเครื่องมือจะส่งขั้นตอนออกไปในลำดับที่เหมาะสมที่สุดเสมอ
จะกลายเป็น:
db.books.aggregate([
{ $match: { year: { $gte: 2020 } } },
{ $group: { _id: "$category", total: { $sum: 1 } } },
{ $match: { total: { $gt: 5 } } },
{ $sort: { total: -1 } },
{ $limit: 5 }
])
รูปแบบ SQL LIKE ถูกแปลงอย่างไร?
Wildcard % ใน SQL จะกลายเป็น .* และ _ จะกลายเป็น . ใน MongoDB regular expression รูปแบบจะถูกยึดตำแหน่งด้วย ^ หรือ $ เมื่อรูปแบบ SQL ไม่ได้ขึ้นต้นหรือลงท้ายด้วย % อักขระพิเศษของ regex ภายในรูปแบบจะถูก escape โดยอัตโนมัติ
- LIKE 'abc%' → /^abc.*/
- LIKE '%.com' → /.*\.com$/
- LIKE '%widget%' → /.*widget.*/
- LIKE 'a_c' → /^a.c$/
ความแตกต่างที่สำคัญระหว่างคิวรี SQL และ MongoDB คืออะไร?
SQL เป็นแบบประกาศและเน้นตาราง — คุณอธิบายแถวและคอลัมน์ ส่วน MongoDB เน้นเอกสารและใช้ภาษาคิวรีที่คล้าย JSON กฎการแปลหลักๆ คือ:
- ตาราง → คอลเลกชัน: FROM users กลายเป็น db.users
- แถว → เอกสาร: แถว SQL ที่มีคอลัมน์ name, age, email จะกลายเป็นเอกสาร MongoDB ที่มีชื่อฟิลด์เหล่านั้น
- WHERE → ออบเจกต์ตัวกรอง: อาร์กิวเมนต์แรกของ find() ใน MongoDB คือเอกสารตัวกรอง โดยใช้ตัวดำเนินการอย่าง $gt, $in, $and
- รายการ SELECT → Projection: อาร์กิวเมนต์ที่สองของ find() ระบุว่าจะรวม (1) หรือไม่รวม (0) ฟิลด์ใด โดยฟิลด์ _id จะถูกรวมมาให้โดยค่าเริ่มต้นเว้นแต่คุณจะตั้งเป็น 0
- ORDER BY → .sort(), LIMIT → .limit(), OFFSET → .skip(): สิ่งเหล่านี้จะกลายเป็นการเรียกเมธอดแบบต่อท้ายหลังจาก find()
- GROUP BY → $group: การรวมข้อมูลที่ลดรูปแถวจำนวนมากลงเหลือหนึ่งส่วนใหญ่จะทำงานภายใน aggregation pipeline
- JOIN → $lookup: การจอย SQL จะจับคู่กับขั้นตอน $lookup ในการทำ aggregation (เครื่องมือนี้เน้นที่คิวรีตารางเดี่ยวในปัจจุบัน หากตรวจพบการจอยจะแสดงคำแนะนำแทน)
คิวรี MongoDB ที่สร้างขึ้นพร้อมสำหรับวางใน mongosh หรือไม่?
ใช่ ผลลัพธ์ใช้ไวยากรณ์ mongosh (MongoDB Shell) รวมถึงคีย์ออบเจกต์ที่ไม่มีเครื่องหมายอัญประกาศ, เมธอดต่อท้าย เช่น .sort(), .limit() และ .skip() และ native JavaScript regex literals คุณสามารถวางลงใน mongosh, แท็บ MongoSH ของ MongoDB Compass หรือ IntelliShell ของ Studio 3T ได้ทันที
วิธีใช้เครื่องมือนี้
- วางคิวรี SQL ของคุณ ลงในช่องป้อนข้อมูล หรือคลิกตัวอย่างด่วนเพื่อโหลดคิวรีตัวอย่าง
- คลิก Convert to MongoDB เครื่องมือจะวิเคราะห์ SQL และสร้างคิวรี MongoDB ที่เทียบเท่า
- ตรวจสอบการจับคู่ Clause ต่อ Clause เพื่อยืนยันการแปลและเรียนรู้กฎการจับคู่
- คัดลอกหรือดาวน์โหลดคิวรี MongoDB โดยใช้ปุ่มที่อยู่ด้านบนของบล็อกโค้ด ไฟล์ที่ดาวน์โหลดจะเป็นสคริปต์ .js ที่พร้อมรัน
กรณีการใช้งานจริง
สำหรับนักพัฒนาที่ย้ายมาใช้ MongoDB
- พอร์ตรายงาน SQL แบบเก่าไปเป็น MongoDB aggregation pipelines
- แปลคิวรี SQL จากเอกสารประกอบ, คำตอบใน Stack Overflow หรือคู่มือการออกแบบ Schema
- สร้างคิวรี MongoDB พื้นฐานที่คุณสามารถนำไปปรับแต่งต่อด้วย index และ projection
สำหรับนักศึกษาและผู้เริ่มต้น
- ทำความเข้าใจการจับคู่ระหว่างภาษาคิวรีที่แตกต่างกันสองภาษาอย่างลึกซึ้ง
- สร้างความคุ้นเคยกับ Document Model ของ MongoDB โดยเริ่มจาก SQL ที่คุณรู้อยู่แล้ว
- ใช้ตารางสรุปตัวดำเนินการเป็นแหล่งอ้างอิงด่วนเมื่อเขียนคิวรี MongoDB ด้วยตัวเอง
สำหรับ DBAs และวิศวกร Backend
- ตรวจสอบความถูกต้องของคิวรี MongoDB ในเบื้องต้นขณะรีวิว Pull Request
- สร้างต้นแบบคิวรีในระหว่างการย้าย Schema ก่อนจะนำไปรันจริงกับข้อมูล Production
- แบ่งปันการจับคู่ Clause เพื่อเป็นสื่อการสอนให้กับสมาชิกในทีมระดับจูเนียร์
ข้อจำกัดและสิ่งที่ยังไม่รองรับ
- JOINs — สิ่งที่เทียบเท่าการ JOIN ใน MongoDB ต้องใช้ขั้นตอน $lookup พร้อมกับการตัดสินใจออกแบบ foreign-key ซึ่งตัวแปลงแบบสแตติกไม่สามารถคาดเดาได้เสมอไป สำหรับตอนนี้ ให้แปลงคิวรีตารางเดี่ยวแล้วนำไปใส่ใน $lookup ด้วยตัวเอง
- Subqueries — ยังไม่รองรับการวิเคราะห์คิวรีย่อยแบบ Scalar และ Correlated แนะนำให้ลองแยกพวกมันออกเป็นสองคิวรีต่างหาก
- CTEs / Clause WITH — ยังไม่รองรับ ให้แยก CTE ออกเป็นคิวรีเดี่ยวๆ ก่อน
- UNION / UNION ALL — ให้ใช้ $unionWith ด้วยตัวเอง
- Window functions — ให้ใช้ $setWindowFields ใน MongoDB 5.0 ขึ้นไป
- นิพจน์ SET ที่ซับซ้อน — ค่าใน UPDATE ต้องเป็นค่าคงที่ การคำนวณทางคณิตศาสตร์เช่น SET x = x + 1 ต้องใช้ตัวดำเนินการ $inc ของ MongoDB ซึ่งคุณต้องเพิ่มเองภายหลัง
คำถามที่พบบ่อย
ทำไมคิวรี SELECT ของฉันที่ไม่มี WHERE ถึงยังคืนค่าเป็นออบเจกต์ตัวกรอง?
find() ของ MongoDB คาดหวังตัวกรองเป็นอาร์กิวเมนต์แรก เมื่อ SQL ไม่มี Clause WHERE เครื่องมือจะส่ง find({}) — ซึ่งเป็นตัวกรองว่างที่จับคู่กับเอกสารทั้งหมด
ทำไม _id: 0 ถึงถูกเพิ่มใน projection ของฉัน?
MongoDB จะรวมฟิลด์ _id มาให้โดยค่าเริ่มต้น เพื่อให้ตรงกับพฤติกรรมของ SQL SELECT ที่จะคืนเฉพาะคอลัมน์ที่ระบุ เครื่องมือจึงเพิ่ม _id: 0 เข้าไป เว้นแต่คุณจะระบุคอลัมน์ _id ไว้อย่างชัดเจน
ฉันควรใช้ updateOne หรือ updateMany สำหรับคิวรี UPDATE ของฉัน?
เครื่องมือจะใช้ updateMany เป็นค่าเริ่มต้น เพื่อให้ตรงกับพฤติกรรมการแก้ไขหลายแถวของ SQL UPDATE ให้เปลี่ยนเป็น updateOne เมื่อคุณมั่นใจว่าตัวกรองจับคู่กับเอกสารเพียงใบเดียว (เช่น เมื่อกรองด้วย _id ที่ไม่ซ้ำกัน)
เครื่องมือเก็บข้อมูลหรือส่ง SQL ของฉันไปที่ไหนหรือไม่?
SQL ของคุณจะถูกส่งไปยังเซิร์ฟเวอร์ของเราเพื่อทำการวิเคราะห์ ส่งกลับมาเป็น MongoDB ที่ถูกแปลงแล้ว จากนั้นจะถูกลบทิ้งทันที ไม่มีการบันทึก จัดเก็บ หรือแชร์กับบุคคลที่สาม
เครื่องมือนี้ฟรีหรือไม่?
ใช่ มันฟรี 100% และใช้งานได้โดยไม่ต้องมีบัญชี คุณสามารถรีเฟรชหน้าเว็บเพื่อเริ่มใหม่ได้ตลอดเวลา
มันจัดการกับประเภทข้อมูลดั้งเดิมของ MongoDB อย่าง ObjectId และ Date อย่างไร?
ค่า String ใน SQL จะกลายเป็น String ใน MongoDB โดยค่าเริ่มต้น หากคอลัมน์ของคุณเก็บ ObjectId ให้แก้ไขค่าโดยใช้ ObjectId("...") ครอบด้วยตัวเอง สำหรับฟิลด์วันที่ ให้ใช้ ISODate("...") แทน ซึ่งแก้ไขได้ง่ายหลังจากการวางโค้ด
แหล่งข้อมูลเพิ่มเติม
- การเปรียบเทียบ SQL อย่างเป็นทางการจาก MongoDB
- ตัวดำเนินการคิวรี MongoDB
- คู่มือ MongoDB Aggregation Pipeline
- SQL - Wikipedia
- MongoDB - Wikipedia
อ้างอิงเนื้อหา หน้าหรือเครื่องมือนี้ว่า:
"ตัวแปลงคิวรี SQL เป็น MongoDB" ที่ https://MiniWebtool.com/th/ตัวแปลงคิวรี-sql-เป็น-mongodb/ จาก MiniWebtool, https://MiniWebtool.com/
โดยทีมงาน miniwebtool อัปเดตล่าสุด: 25 เม.ย. 2026
เครื่องมืออื่นๆ ที่เกี่ยวข้อง:
เครื่องมือข้อความเพิ่มเติม:
- เครื่องสร้างอานาแกรม
- ตัวแปลงการอ่านไบโอนิก ใหม่
- เปรียบเทียบสองสตริง
- คนหาเครองมอเสนทยาวทสด
- ตัวตรวจจับภาษาโดย AI แนะนำ
- ตัวประมวลผลบรรทัดข้อความ
- เครื่องมือตรวจสอบ XML แนะนำ
- ตัวอ่านข้อความเป็นเสียง ใหม่
- ตัวสกัดคอลัมน์ข้อความ ใหม่
- ตัวแปลง JSON เป็น YAML ใหม่
- เครื่องมือทดสอบ regex ใหม่
- ตัวตรวจสอบความแตกต่าง ใหม่
- ตัวแปลง CSV เป็น JSON ใหม่
- ตัวแปลงรูปภาพเป็น Base64 ใหม่
- เครื่องมือทดสอบ API ใหม่
- ตาราง ASCII ใหม่
- ตัวทดสอบ Webhook ใหม่
- เครื่องสร้างชื่อบทความบล็อก AI ใหม่
- เครื่องสร้างแฮชแท็ก AI ใหม่
- เครื่องสร้างสโลแกน AI ใหม่
- เครื่องมือสร้างโครงร่างบทความ AI ใหม่
- สมุดบันทึกออนไลน์ ใหม่
- ตัวแปลง TOML เป็น JSON ใหม่
- ตัวแปลง JSON เป็น CSV ใหม่
- ตัวแปลง XML เป็น JSON ใหม่
- ตัวแปลงคิวรี SQL เป็น MongoDB ใหม่