SQL para NoSQL
Cole uma única instrução SQL SELECT e o conversor a reescreve como uma consulta find() equivalente do MongoDB. Ele mapeia as colunas selecionadas para uma projeção, a cláusula WHERE para um filtro, ORDER BY para .sort() e LIMIT para .limit(). É um reescritor de consultas para instruções simples, não uma ferramenta de migração: JOIN, GROUP BY, agregações e subconsultas não são suportados.
Como a conversão funciona
-
1
Analisar o SELECT
A ferramenta lê uma única instrução no formato `SELECT colunas FROM tabela [WHERE ...] [ORDER BY ...] [LIMIT n]`.
-
2
Mapear cada cláusula
As colunas viram uma projeção `{ col: 1 }`, `WHERE` vira um filtro, `ORDER BY` vira `.sort()` e `LIMIT` vira `.limit()`.
-
3
Traduzir os operadores
Os operadores de comparação são mapeados para operadores do Mongo: `>` para `$gt`, `<` para `$lt`, `>=` para `$gte`, `<=` para `$lte`, `!=` para `$ne`, e `=` para uma correspondência direta.
-
4
Copiar a saída
A linha `db.collection.find(...)` gerada está pronta para colar no shell mongosh ou em uma chamada de driver.
Um exemplo prático
SQL:
SELECT name, price FROM products WHERE price > 100 ORDER BY price DESC LIMIT 5;
Consulta do MongoDB:
db.products.find({ price: { $gt: 100 } }, { name: 1, price: 1 }).sort({ price: -1 }).limit(5)
O que o conversor mapeia
| SQL | MongoDB find() |
|---|---|
SELECT a, b |
projeção { a: 1, b: 1 } |
SELECT * |
todos os campos (projeção vazia) |
FROM users |
db.users.find(...) |
WHERE a = 5 |
{ a: 5 } |
WHERE a > 5 |
{ a: { $gt: 5 } } |
WHERE a >= 5 |
{ a: { $gte: 5 } } |
WHERE a != 5 |
{ a: { $ne: 5 } } |
WHERE a AND b |
{ a: ..., b: ... } |
WHERE a OR b |
{ $or: [ ... ] } |
ORDER BY a DESC |
.sort({ a: -1 }) |
LIMIT 10 |
.limit(10) |
O que não é suportado
- JOINs. Apenas uma tabela é lida. Combinar coleções exige
$lookupou um modelo de dados desnormalizado, o que é uma decisão de esquema, não uma reescrita de consulta. - GROUP BY e agregações.
COUNT,SUM,AVGeGROUP BYexigem o pipeline de agregação (db.collection.aggregate([...])), que esta ferramenta não gera. - Subconsultas, CTEs e funções de janela. Repense o modelo ou divida o trabalho em etapas; elas não podem ser expressas em um
find(). - IN, LIKE e BETWEEN. O analisador de
WHEREtrata apenas os operadores de comparação=,>,<,>=,<=,!=e<>. - Misturar AND e OR. Uma cláusula
WHEREé tratada como todaANDou todaOR; não combine ambos na mesma instrução. - INSERT, UPDATE, DELETE, CREATE TABLE. Apenas
SELECTé convertido.
Sobre a saída
O resultado é sempre uma única linha db.collection.find(filtro, projeção), opcionalmente seguida de .sort() e .limit(). Ela é destinada ao shell e aos drivers do MongoDB. Não produz consultas do Firestore ou do Elasticsearch, e não escolhe índices nem otimiza o desempenho. Teste a consulta com seus próprios dados antes de confiar nela.
Perguntas frequentes
Não. A saída é sempre uma consulta find() do MongoDB para o shell mongosh ou um driver. Não há seletor de destino para outros armazenamentos de documentos.
Não. Isso exige o pipeline de agregação do MongoDB (aggregate([...])), que esta ferramenta não gera. Ela só produz consultas find() com filtro, projeção, ordenação e limite.
Não. Apenas uma tabela FROM é lida. Armazenamentos NoSQL favorecem embutir ou referenciar, então um JOIN geralmente implica uma mudança no modelo de dados, não uma reescrita da consulta.
Não. Apenas instruções SELECT são convertidas. As coleções do MongoDB não têm esquema por padrão, então não há definição de tabela a traduzir.
Ferramentas relacionadas
Gerador de Cartão CSS
Crie o CSS de um contêiner de cartão: fundo, borda, raio dos cantos, espaçamento interno e sombra suave, com pré-visualização imediata e código para copiar e colar.
Conversor de Tamanho de Arquivo
Converta entre bytes, KB, MB, GB, TB e as unidades binárias IEC (KiB, MiB, GiB, TiB), combinando decimal e binário como preferir.
Gerador de Docker Compose
Gere um docker-compose.yml a partir de definições de serviços com imagem, portas e volumes, com padrões de boas práticas.
Conversor de base numérica
Converta números entre binário, octal, decimal, hexadecimal e qualquer base personalizada de 2 a 36, com o detalhamento posicional.
Visualizador de Markdown
Escreva Markdown e veja a renderização HTML atualizar ao vivo. Sintaxe com estilo GitHub, incluindo tabelas, listas de tarefas, blocos de código cercados e autolinks.
Gerador de Configuração Nginx
Gere blocos de servidor Nginx com TLS, HTTP/2, gzip, cache de navegador e regras de proxy reverso a partir de um formulário simples.
Ferramenta disponível em outros idiomas
- SQL から NoSQL へ [JA]
- SQL na NoSQL [PL]
- การแปลง SQL เป็น NoSQL [TH]
- SQL till NoSQL [SV]
- SQL zu NoSQL [DE]
- Dari SQL ke NoSQL [ID]
- Từ SQL sang NoSQL [VI]
- SQL naar NoSQL [NL]
- SQL vers NoSQL [FR]
- SQL → NoSQL [KO]
- SQL a NoSQL [ES]
- من SQL إلى NoSQL [AR]
- SQL to NoSQL [EN]
- SQL a NoSQL [IT]
- SQL в NoSQL [RU]
- SQL'den NoSQL'e [TR]
- 从 SQL 到 NoSQL [ZH]