Công cụ Chuyển đổi Truy vấn SQL sang MongoDB
Chuyển đổi các truy vấn SQL (SELECT, INSERT, UPDATE, DELETE) sang cú pháp MongoDB shell với ánh xạ từng mệnh đề, tạo aggregation pipeline, làm nổi bật cú pháp trực tiếp và đầu ra mongosh sẵn sàng để dán.
Trình chặn quảng cáo đang ngăn chúng tôi hiển thị quảng cáo
MiniWebtool miễn phí nhờ quảng cáo. Nếu công cụ này hữu ích, hãy ủng hộ bằng Premium (không quảng cáo + nhanh hơn) hoặc cho phép MiniWebtool.com rồi tải lại trang.
- Hoặc nâng cấp Premium (không quảng cáo)
- Cho phép quảng cáo cho MiniWebtool.com, rồi tải lại
Giới thiệu về Công cụ Chuyển đổi Truy vấn SQL sang MongoDB
Chào mừng bạn đến với Công cụ Chuyển đổi Truy vấn SQL sang MongoDB, một công cụ trực tuyến giúp dịch các truy vấn SQL — SELECT, INSERT, UPDATE và DELETE — sang cú pháp shell MongoDB sạch sẽ, sẵn sàng để dán. Mỗi lần chuyển đổi đều đi kèm với một ánh xạ theo từng mệnh đề cho thấy chính xác cách mỗi từ khóa SQL trở thành tương đương MongoDB của nó, làm cho công cụ này vừa là bộ chuyển đổi vừa là phương tiện hỗ trợ học tập cho các nhà phát triển đang chuyển từ cơ sở dữ liệu quan hệ sang MongoDB.
Tại sao nên sử dụng bộ chuyển đổi SQL sang MongoDB này?
Hầu hết các bộ chuyển đổi trực tuyến chỉ đơn giản là đưa ra một khối JSON và để bạn tự đoán điều gì đã xảy ra. Công cụ này khác biệt: bạn thấy truy vấn MongoDB được tạo và một ánh xạ từng bước giải thích tại sao mỗi mệnh đề được chuyển đổi theo cách đó. Điều đó làm cho nó hữu ích như nhau cho các lần dịch nhanh trong quá trình di chuyển và để học ngôn ngữ truy vấn MongoDB từ kiến thức SQL hiện có của bạn.
Các tính năng chính
- Bốn loại câu lệnh: SELECT (find, distinct, countDocuments, aggregate), INSERT, UPDATE, DELETE — tất cả trong một công cụ.
- Ánh xạ theo từng mệnh đề: xem cách FROM, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT, OFFSET mỗi cái chuyển thành các toán tử MongoDB như thế nào.
- Đường ống tập hợp tự động: GROUP BY, HAVING và các hàm tập hợp tạo ra các đường ống aggregate([...]) thích hợp với các giai đoạn $match, $group, $sort, $limit theo đúng thứ tự.
- Hỗ trợ WHERE phong phú: AND, OR, NOT, dấu ngoặc đơn, IN, NOT IN, BETWEEN, LIKE, IS NULL, IS NOT NULL và tất cả sáu toán tử so sánh.
- Đầu ra được làm nổi bật cú pháp: dễ đọc, dán trực tiếp vào mongosh, MongoDB Compass hoặc Studio 3T.
- Bảng tra cứu toán tử: thẻ tham chiếu luôn hiển thị với 24 ánh xạ SQL ↔ MongoDB phổ biến.
- Ví dụ tải nhanh: chín ví dụ thực tế, chỉ cách một cú nhấp chuột.
- Sao chép và tải xuống: sao chép vào khay nhớ tạm chỉ bằng một cú nhấp chuột hoặc lưu dưới dạng tệp .js.
- Sẵn sàng cho di động: bố cục thích ứng với điện thoại và máy tính bảng — bảng ánh xạ sẽ xếp chồng theo chiều dọc trên màn hình hẹp.
Những câu lệnh SQL nào công cụ này có thể chuyển đổi sang MongoDB?
Công cụ chuyển đổi các câu lệnh SELECT, INSERT, UPDATE và DELETE. SELECT hỗ trợ WHERE, ORDER BY, GROUP BY, HAVING, LIMIT, OFFSET, DISTINCT và năm hàm tập hợp tiêu chuẩn: COUNT, SUM, AVG, MIN và MAX. Các mệnh đề WHERE phức tạp với AND, OR, NOT, IN, NOT IN, BETWEEN, LIKE, IS NULL và IS NOT NULL đều ánh xạ rõ ràng sang các toán tử MongoDB.
Cách hoạt động của ánh xạ theo từng mệnh đề?
Sau mỗi lần chuyển đổi, công cụ sẽ hiển thị một bảng xếp hàng từng mệnh đề SQL với tương đương MongoDB của nó. Ví dụ:
MongoDB: db.users.find({ age: { $gt: 21 } }, { name: 1, age: 1, _id: 0 }).sort({ age: -1 }).limit(10)
Ánh xạ:
· FROM users → db.users
· SELECT name, age → phép chiếu { name: 1, age: 1, _id: 0 }
· WHERE age > 21 → bộ lọc { age: { $gt: 21 } }
· ORDER BY age DESC → .sort({ age: -1 })
· LIMIT 10 → .limit(10)
Nó có xử lý các đường ống tập hợp cho các truy vấn GROUP BY không?
Có. Khi SQL sử dụng GROUP BY, HAVING hoặc các hàm tập hợp, bộ chuyển đổi sẽ tạo ra một đường ống tập hợp MongoDB đầy đủ: $match trước khi nhóm (từ WHERE), $group với _id và các bộ tích lũy, $match sau khi nhóm (từ HAVING), sau đó là $sort, $skip và $limit theo thứ tự đường ống. Thứ tự rất quan trọng — thực hiện $sort trước $match sẽ chậm hơn nhiều trong MongoDB — vì vậy công cụ luôn phát ra các giai đoạn theo thứ tự tối ưu.
trở thành:
db.books.aggregate([
{ $match: { year: { $gte: 2020 } } },
{ $group: { _id: "$category", total: { $sum: 1 } } },
{ $match: { total: { $gt: 5 } } },
{ $sort: { total: -1 } },
{ $limit: 5 }
])
Các mẫu SQL LIKE được chuyển đổi như thế nào?
Các ký tự đại diện % trong SQL trở thành .* và ký tự đại diện _ trở thành . trong biểu thức chính quy của MongoDB. Các mẫu được neo bằng ^ hoặc $ khi mẫu SQL không bắt đầu hoặc kết thúc bằng %. Các ký tự regex đặc biệt bên trong mẫu sẽ được thoát (escape) tự động.
- LIKE 'abc%' → /^abc.*//
- LIKE '%.com' → /.*\.com$/
- LIKE '%widget%' → /.*widget.*/
- LIKE 'a_c' → /^a.c$/
Sự khác biệt chính giữa truy vấn SQL và MongoDB là gì?
SQL có tính khai báo và định hướng bảng — bạn mô tả các hàng và cột. MongoDB định hướng tài liệu và sử dụng ngôn ngữ truy vấn giống JSON. Các quy tắc dịch chính:
- Bảng → collection. FROM users trở thành db.users.
- Hàng → tài liệu. Một hàng SQL với các cột name, age, email trở thành một tài liệu MongoDB với các tên trường đó.
- WHERE → đối tượng bộ lọc. Đối số đầu tiên của MongoDB cho find() là một tài liệu bộ lọc, sử dụng các toán tử như $gt, $in, $and.
- Danh sách SELECT → phép chiếu (projection). Đối số thứ hai cho find() chỉ định trường nào cần bao gồm (1) hoặc loại trừ (0). Trường _id được bao gồm theo mặc định trừ khi bạn đặt nó thành 0.
- ORDER BY → .sort(), LIMIT → .limit(), OFFSET → .skip(). Đây trở thành các phương thức chuỗi được gọi sau find().
- GROUP BY → $group. Các tập hợp thu nhỏ nhiều hàng thành một sẽ chạy bên trong một đường ống tập hợp.
- JOIN → $lookup. Các phép nối SQL ánh xạ tới giai đoạn $lookup trong tập hợp. (Công cụ này hiện đang tập trung vào các truy vấn bảng đơn; các phép nối được hiển thị dưới dạng gợi ý khi được phát hiện.)
Truy vấn MongoDB được tạo có sẵn sàng để dán vào mongosh không?
Có. Đầu ra sử dụng cú pháp mongosh (MongoDB Shell), bao gồm các khóa đối tượng không có dấu ngoặc kép, các phương thức chuỗi nối tiếp như .sort(), .limit() và .skip(), và các hằng số regex JavaScript gốc. Bạn có thể dán trực tiếp vào mongosh, tab MongoSH của MongoDB Compass hoặc IntelliShell của Studio 3T.
Cách sử dụng công cụ này
- Dán truy vấn SQL của bạn vào hộp nhập liệu, hoặc nhấp vào một Ví dụ nhanh để tải một truy vấn mẫu.
- Nhấp Chuyển đổi sang MongoDB. Công cụ sẽ phân tích cú pháp SQL của bạn và xây dựng truy vấn MongoDB tương đương.
- Xem lại ánh xạ theo từng mệnh đề để xác minh bản dịch và học các quy tắc ánh xạ.
- Sao chép hoặc tải xuống truy vấn MongoDB bằng các nút ở phía trên khối mã. Tệp tải xuống là một tập lệnh .js sẵn sàng để chạy.
Các trường hợp sử dụng thực tế
Dành cho nhà phát triển chuyển sang MongoDB
- Chuyển các báo cáo SQL cũ sang các đường ống tập hợp MongoDB.
- Dịch các truy vấn SQL từ tài liệu, câu trả lời trên Stack Overflow hoặc hướng dẫn thiết kế lược đồ.
- Tạo các truy vấn MongoDB cơ sở mà sau đó bạn có thể tối ưu hóa bằng các index và projection.
Dành cho sinh viên và người học
- Hiểu ánh xạ giữa hai ngôn ngữ truy vấn khác nhau về cơ bản.
- Xây dựng trực giác cho mô hình tài liệu của MongoDB bằng cách bắt đầu từ SQL mà bạn đã biết.
- Sử dụng bảng tra cứu toán tử làm tham chiếu nhanh khi viết truy vấn MongoDB từ đầu.
Dành cho DBA và kỹ sư Backend
- Kiểm tra nhanh các truy vấn MongoDB ứng viên khi xem lại các pull request.
- Tạo nguyên mẫu truy vấn trong quá trình di chuyển lược đồ trước khi chạy chúng trên dữ liệu thực tế.
- Chia sẻ ánh xạ mệnh đề làm tài liệu giảng dạy cho các thành viên mới trong nhóm.
Hạn chế và những gì chưa được hỗ trợ
- JOINs — Các tương đương JOIN trong MongoDB yêu cầu các giai đoạn $lookup với các quyết định thiết kế khóa ngoại mà một bộ chuyển đổi tĩnh không thể luôn suy luận được. Hiện tại, hãy chuyển đổi các truy vấn bảng đơn và tự mình bọc chúng trong $lookup khi cần.
- Truy vấn con (Subqueries) — Các truy vấn con vô hướng và có tương quan không được phân tích cú pháp. Hãy thử phân tách chúng thành hai truy vấn riêng biệt.
- CTEs / Mệnh đề WITH — Không được hỗ trợ; hãy trích xuất CTE thành một truy vấn độc lập trước.
- UNION / UNION ALL — Sử dụng $unionWith một cách thủ công.
- Các hàm cửa sổ (Window functions) — Sử dụng $setWindowFields trong MongoDB 5.0+.
- Các biểu thức SET phức tạp — Các giá trị UPDATE phải là hằng số; các phép toán số học như SET x = x + 1 cần toán tử $inc của MongoDB, mà bạn sẽ thêm vào một cách thủ công.
Câu hỏi thường gặp
Tại sao truy vấn SELECT của tôi không có WHERE vẫn trả về một đối tượng bộ lọc?
find() của MongoDB mong đợi một bộ lọc làm đối số đầu tiên. Khi SQL không có mệnh đề WHERE, công cụ sẽ phát ra find({}) — một bộ lọc trống khớp với tất cả các tài liệu.
Tại sao _id: 0 được thêm vào phép chiếu của tôi?
MongoDB bao gồm trường _id theo mặc định trong kết quả truy vấn. Để khớp với hành vi SELECT của SQL nơi chỉ các cột được liệt kê được trả về, công cụ sẽ thêm _id: 0 trừ khi bạn liệt kê rõ ràng _id như một cột.
Tôi nên sử dụng updateOne hay updateMany cho truy vấn UPDATE của mình?
Công cụ phát ra updateMany theo mặc định, khớp với ngữ nghĩa nhiều hàng của SQL UPDATE. Hãy chuyển sang updateOne khi bạn chắc chắn rằng bộ lọc chỉ khớp với một tài liệu duy nhất (ví dụ: khi lọc theo _id duy nhất).
Công cụ có lưu trữ hoặc gửi SQL của tôi đi đâu không?
SQL của bạn được gửi đến máy chủ của chúng tôi để phân tích cú pháp, trả về dưới dạng MongoDB đã chuyển đổi, và sau đó bị hủy. Nó không được ghi nhật ký, lưu trữ hoặc chia sẻ với bất kỳ bên thứ ba nào.
Công cụ này có miễn phí không?
Có, nó hoàn toàn miễn phí và có thể sử dụng mà không cần tài khoản. Làm mới trang để bắt đầu lại bất cứ lúc nào.
Làm cách nào nó xử lý các loại gốc của MongoDB như ObjectId và Date?
Các hằng số chuỗi SQL trở thành chuỗi MongoDB theo mặc định. Nếu cột của bạn lưu trữ một ObjectId, hãy bọc hằng số đó một cách thủ công trong ObjectId("..."). Đối với các trường ngày tháng, hãy bọc hằng số trong ISODate("..."). Cả hai việc thay thế này chỉ mất một giây để chỉnh sửa sau khi dán.
Tài liệu tham khảo bổ sung
- Tài liệu tham khảo so sánh SQL chính thức của MongoDB
- Các toán tử truy vấn MongoDB
- Hướng dẫn đường ống tập hợp MongoDB
- SQL - Wikipedia
- MongoDB - Wikipedia
Tham khảo nội dung, trang hoặc công cụ này như sau:
"Công cụ Chuyển đổi Truy vấn SQL sang MongoDB" tại https://MiniWebtool.com/vi/cong-cu-chuyen-oi-truy-van-sql-sang-mongodb/ từ MiniWebtool, https://MiniWebtool.com/
bởi đội ngũ miniwebtool. Cập nhật: 25 thg 4, 2026
Các công cụ liên quan khác:
Công cụ văn bản khác:
- Trình tạo anagram
- Công cụ Chuyển đổi Đọc Bionic Mới
- So sánh hai chuỗi Nổi bật
- Tìm công cụ đường dài nhất
- Bộ phát hiện ngôn ngữ AI Nổi bật
- Bộ xử lý dòng văn bản
- Trình xác thực XML Nổi bật
- Trình đọc văn bản thành giọng nói Mới
- Công cụ trích xuất cột văn bản Mới
- Công cụ chuyển đổi JSON sang YAML Mới
- Trình kiểm tra Regex Mới
- Kiểm tra sự khác biệt Mới
- Chuyển đổi CSV sang JSON Mới
- Công cụ chuyển đổi hình ảnh sang Base64 Mới
- Công cụ Kiểm tra API Mới
- Bảng mã ASCII Mới
- Trình kiểm tra Webhook Mới
- Trình Tạo Tiêu Đề Blog AI Mới
- Trình tạo Hashtag AI Mới
- Trình tạo khẩu hiệu AI Mới
- Trình tạo dàn ý bài viết AI Mới
- Sổ Tay Trực Tuyến Mới
- Trình chuyển đổi TOML sang JSON Mới
- Trình Chuyển Đổi JSON sang CSV Mới
- Trình Chuyển Đổi XML Sang JSON Mới
- Công cụ Chuyển đổi Truy vấn SQL sang MongoDB Mới