← All Tools

SQL to MongoDB Converter

Convert SQL queries to MongoDB query syntax. Supports SELECT, WHERE, ORDER BY, LIMIT, GROUP BY, and aggregation functions.

SQL Query
MongoDB Query
Examples (click to load)
Basic WHERE
SELECT * FROM users WHERE age > 25
---
db.users.find({ age: { $gt: 25 } })
SELECT + AND
SELECT name, email FROM users WHERE status = 'active' AND age >= 18
---
db.users.find({ status: "active", age: { $gte: 18 } }, { name: 1, email: 1 })
BETWEEN + ORDER + LIMIT
SELECT * FROM products WHERE price BETWEEN 10 AND 100 ORDER BY price LIMIT 5
---
db.products.find({ price: { $gte: 10, $lte: 100 } }).sort({ price: 1 }).limit(5)
COUNT + GROUP BY
SELECT COUNT(*) FROM orders WHERE status = 'shipped' GROUP BY customer_id
---
db.orders.aggregate([{ $match: { status: "shipped" } }, { $group: { _id: "$customer_id", count: { $sum: 1 } } }])
LIKE (pattern match)
SELECT * FROM users WHERE name LIKE '%john%'
---
db.users.find({ name: { $regex: "john", $options: "i" } })
IN + IS NULL
SELECT * FROM users WHERE role IN ('admin', 'editor') AND email IS NULL
---
db.users.find({ role: { $in: ["admin", "editor"] }, email: null })
SUM + GROUP BY
SELECT category, SUM(amount) FROM sales GROUP BY category
---
db.sales.aggregate([{ $group: { _id: "$category", total_amount: { $sum: "$amount" } } }])
AVG + GROUP BY + ORDER
SELECT department, AVG(salary) FROM employees WHERE active = 1 GROUP BY department ORDER BY AVG(salary)
---
db.employees.aggregate([{ $match: { active: 1 } }, { $group: { _id: "$department", avg_salary: { $avg: "$salary" } } }, { $sort: { avg_salary: 1 } }])
Operator Cheatsheet
SQLMongoDB
= value{ field: value }
!= value{ field: { $ne: value } }
> value{ field: { $gt: value } }
< value{ field: { $lt: value } }
>= value{ field: { $gte: value } }
<= value{ field: { $lte: value } }
IN (a, b, c){ field: { $in: [a, b, c] } }
LIKE '%val%'{ field: { $regex: "val", $options: "i" } }
BETWEEN a AND b{ field: { $gte: a, $lte: b } }
IS NULL{ field: null }
IS NOT NULL{ field: { $ne: null } }
ANDimplicit (comma-separated) or { $and: [...] }
OR{ $or: [...] }
ORDER BY field ASC.sort({ field: 1 })
ORDER BY field DESC.sort({ field: -1 })
LIMIT n.limit(n)
COUNT(*){ $sum: 1 } in $group
SUM(field){ $sum: "$field" } in $group
AVG(field){ $avg: "$field" } in $group