按 ⌘K 切换工具
FORMAT & CONVERT
SQL → MongoDB查询转换工具
将SQL查询转换为MongoDB查询语法。
sql-mongo
§01 关于此工具
概述
一个给在关系型语法和 MongoDB 语法之间来回切换的开发者用的快速转换器。它解析一条
简单的 SELECT 语句,输出等价的 db.collection.find() 调用:列清单变成投影,
WHERE 变成过滤文档,ORDER BY 变成 .sort()(DESC → -1),LIMIT 变成
.limit()。常见场景是把既有的 SQL 报表逐条搬到 MongoDB 上,
或者反过来向习惯 SQL 的同事解释某个 find() 到底在筛什么。
使用方法
- 在 SQL SELECT 区域输入或粘贴一条查询。
- 从 MongoDB 输出读取转换结果,它随着你的输入更新,不需要点任何按钮。
- 把生成的调用直接粘进 mongo shell 或者驱动代码里使用。
示例
SELECT name, age FROM users WHERE age > 18 ORDER BY name LIMIT 10→db.users.find({"age":{"$gt":18}}, {"name":1,"age":1}).sort({"name":1}).limit(10)SELECT * FROM orders WHERE status = 'paid'→db.orders.find({"status":"paid"})
说明
它只处理基本的查询形态——这是一个语法辅助工具,不是完整的 SQL 解析器。多个 WHERE
条件按 AND 语义合并(也就是 MongoDB 的隐式合取);字符串值可以用单引号或双引号,
未加引号的值会被当作数字。如果输出看起来不对,先确认语句是否落在支持的形态之内:
一旦出现 JOIN、GROUP BY 或 OR,结果就不能指望。在依赖转换结果之前,
请先对着你的数据验证一遍。
把它当成一份翻译初稿:形态对上之后,索引、类型和空值语义这些差异仍然要自己判断。
FAQ
我的查询会被发送到服务器吗?
不会。SQL 的解析和转换完全在浏览器内进行,不做任何传输,因此引用了真实表名或字段名的查询也不会外泄。
支持哪些 SQL 语句?
只支持单条形如 SELECT ... FROM ... [WHERE] [ORDER BY] [LIMIT] 的 SELECT。WHERE 条件之间必须用 AND 连接;OR、JOIN、GROUP BY、子查询、IN 和 LIKE 都不支持。
比较运算符是怎么转换的?
相等会变成直接的值匹配;>、<、>=、<= 和 !=(或 <>)分别映射为 $gt、$lt、$gte、$lte 和 $ne。