SQL转MongoDB查询语法
示例查询(点击使用)
基本查询
SELECT * FROM users WHERE age > 18
多条件查询
SELECT * FROM users WHERE age >= 18 AND status = 'active' AND city = 'Beijing'
OR条件
SELECT * FROM users WHERE status = 'active' OR role = 'admin'
IN查询
SELECT * FROM products WHERE category IN ('electronics', 'books', 'clothing')
LIKE查询
SELECT * FROM users WHERE name LIKE '%john%'
排序和分页
SELECT name, email FROM users WHERE active = 1 ORDER BY created_at DESC LIMIT 10 OFFSET 20
NULL检查
SELECT * FROM orders WHERE shipped_at IS NULL
NOT NULL检查
SELECT * FROM orders WHERE shipped_at IS NOT NULL
BETWEEN查询
SELECT * FROM products WHERE price BETWEEN 100 AND 500
COUNT聚合
SELECT COUNT(*) FROM users WHERE status = 'active'
GROUP BY聚合
SELECT city, COUNT(*) as count FROM users GROUP BY city
NOT IN查询
SELECT * FROM users WHERE role NOT IN ('guest', 'banned')
SQL到MongoDB对照表
| SQL | MongoDB |
|---|---|
| WHERE a = 1 | { a: 1 } |
| WHERE a != 1 | { a: { $ne: 1 } } |
| WHERE a > 1 | { a: { $gt: 1 } } |
| WHERE a >= 1 | { a: { $gte: 1 } } |
| WHERE a < 1 | { a: { $lt: 1 } } |
| WHERE a <= 1 | { a: { $lte: 1 } } |
| WHERE a IN (1,2,3) | { a: { $in: [1,2,3] } } |
| WHERE a NOT IN (1,2,3) | { a: { $nin: [1,2,3] } } |
| WHERE a LIKE '%text%' | { a: /text/ } |
| WHERE a LIKE 'text%' | { a: /^text/ } |
| WHERE a LIKE '%text' | { a: /text$/ } |
| WHERE a IS NULL | { a: null } |
| WHERE a IS NOT NULL | { a: { $ne: null } } |
| WHERE a AND b | { $and: [{a}, {b}] } |
| WHERE a OR b | { $or: [{a}, {b}] } |
| ORDER BY a ASC | .sort({ a: 1 }) |
| ORDER BY a DESC | .sort({ a: -1 }) |
| LIMIT n | .limit(n) |
| OFFSET n | .skip(n) |
| SELECT a, b | .project({ a: 1, b: 1 }) |
| COUNT(*) | .countDocuments() |