Ir para o conteúdo
Totalmente local

Consulta SQL para MongoDB

Converta uma instrução SQL SELECT para uma chamada MongoDB find() ou pipeline de agregação.

Entrada
Saída

Consulta SQL para MongoDB

Cole uma instrução SQL SELECT e esta ferramenta a converte para a consulta MongoDB equivalente — uma chamada do método mongosh que você pode executar no shell, ou um documento de consulta JSON puro para o código de seu próprio driver. Ele lê a cláusula WHERE, ORDER BY, LIMIT e OFFSET e os converte em um filtro MongoDB, sort, limit e skip, para que "SELECT id, name FROM users WHERE age > 18 ORDER BY name DESC LIMIT 10" se torne um find() pronto para usar com objetos de filtro e sort correspondentes.

Também compreende agregação. COUNT, SUM, AVG, MIN e MAX na lista SELECT combinados com GROUP BY produzem um estágio $group seguido de um estágio $project que renomeia os campos _id agrupados de volta para suas colunas originais. Um JOIN torna-se um estágio $lookup mais $unwind quando "Converter JOIN para $lookup" está ativado — desative-o e o join será removido, com uma nota explicando por quê. "Converter nomes de colunas para camelCase" reformata colunas snake_case como first_name em firstName, correspondendo à nomenclatura típica do Mongoose, e a indentação é sua para definir.

Nem toda construção SQL tem um equivalente MongoDB limpo — subconsultas, UNION, expressões CASE e HAVING não mapeiam para uma consulta única ou pipeline. Em vez de produzir silenciosamente uma consulta errada, a ferramenta relata um erro claro nomeando a construção não suportada, ou, para as coisas que ela pode contornar (um JOIN adicional, um HAVING descartado, uma coluna SELECT desagrupada), adiciona um comentário de aviso breve acima da consulta gerada explicando o que mudou.

Tudo é executado localmente no seu navegador: o SQL é analisado e convertido inteiramente no seu dispositivo, e nenhuma consulta ou esquema nunca o deixa. Copie o resultado, baixe-o como arquivo .txt, ou envie-o novamente para a entrada para continuar refinando a consulta original.

FAQ

Suporta JOINs?
Um único JOIN se converte em um estágio $lookup mais $unwind em um pipeline de agregação quando "Converter JOIN para $lookup" está ativado. RIGHT JOIN é convertido como LEFT JOIN, e JOINs adicionais além do primeiro são anotados como ignorados.
O que acontece com GROUP BY e funções de agregação como COUNT ou SUM?
Eles se tornam um estágio $group (com o acumulador correto para cada função) seguido por um estágio $project que restaura os nomes das colunas originais, tudo dentro de um pipeline de agregação.
Quais recursos SQL não são suportados?
Subconsultas, UNION e expressões CASE não possuem equivalente direto no MongoDB e produzem um erro claro em vez de uma consulta incorreta. HAVING é aceito mas descartado com um aviso, pois precisa de um segundo estágio $match que você adicione.
Posso obter uma consulta JSON pura em vez de um comando mongosh?
Sim. Mude "Exportar como" para consulta JSON para obter um documento de consulta (coleção, operação, filtro, etc.) que você pode analisar ou incorporar no seu próprio código em vez de uma chamada de shell.
Meu SQL é enviado para algum lugar?
Não. A conversão é executada inteiramente no seu navegador — sua consulta, nomes de tabelas e dados nunca deixam seu dispositivo.