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
Referência da Tabela ASCII
Tabela ASCII completa de 0 a 127 com valores decimais, hexadecimais, octais e binários e notação de referência numérica HTML, incluindo NUL, LF e DEL.
Referência de Caracteres HTML
Lista pesquisável de entidades HTML, seus códigos nomeados e numéricos, e uma cópia com um clique para caracteres e símbolos especiais.
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.
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 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.
Referência de atalhos de teclado
Pesquise atalhos padrão documentados do VS Code, Chrome e Bash com GNU Readline no macOS, Windows e Linux.
Ferramenta disponível em outros idiomas
- SQL na NoSQL [PL]
- Dari SQL ke NoSQL [ID]
- Từ SQL sang NoSQL [VI]
- SQL till NoSQL [SV]
- การแปลง SQL เป็น NoSQL [TH]
- SQL から NoSQL へ [JA]
- من SQL إلى NoSQL [AR]
- SQL a NoSQL [ES]
- SQL vers NoSQL [FR]
- SQL zu NoSQL [DE]
- SQL → NoSQL [KO]
- SQL naar NoSQL [NL]
- SQL a NoSQL [IT]
- SQL в NoSQL [RU]
- SQL'den NoSQL'e [TR]
- 从 SQL 到 NoSQL [ZH]
- SQL to NoSQL [EN]