Přeskočit na obsah
100% lokálně

SQL do MongoDB dotaz

Převeďte příkaz SQL SELECT na MongoDB volání find() nebo agregační pipeline.

Vstup
Výstup

SQL do MongoDB dotaz

Vložte příkaz SQL SELECT a tento nástroj jej převede na ekvivalentní MongoDB dotaz — buď mongosh volání, které můžete spustit v shellu, nebo prostý JSON dokument dotazu pro váš vlastní kód ovladače. Čte klauzuli WHERE, ORDER BY, LIMIT a OFFSET a převádí je na MongoDB filtr, sort, limit a skip, takže "SELECT id, name FROM users WHERE age > 18 ORDER BY name DESC LIMIT 10" se stane find() připravený ke spuštění s odpovídajícími filtry a objekty sort.

Rozmí také agregaci. COUNT, SUM, AVG, MIN a MAX v seznamu SELECT v kombinaci s GROUP BY vytvoří $group fázi následovanou $project fází, která přejmenuje seskupená pole _id zpět na jejich původní sloupce. JOIN se stane $lookup plus $unwind fází, když je zapnuta možnost "Převést JOIN na $lookup" — vypněte ji a JOIN se místo toho ignoruje, s poznámkou vysvětlující proč. "Převést názvy sloupců na camelCase" přetváří sloupce typu snake_case, jako první_name, na firstName, což odpovídá typickému pojmenování v Mongoose, a odsazení si nastavíte vy.

Ne každý SQL konstrukt má čisté ekvivalenty MongoDB — poddotazy, UNION, CASE výrazy a HAVING se nemapují na jeden dotaz nebo pipeline. Místo tiché produkce nesprávného dotazu nástroj hlásí jasnu chybu s názvem nepodporovaného konstruktu, nebo pro věci, které může obejít (další JOIN, zahozený HAVING, nezeskupený sloupec SELECT), přidává krátký komentář varování nad vygenerovaným dotazem vysvětlující, co se změnilo.

Všechno se provádí lokálně ve vašem prohlížeči: SQL se parsuje a převádí zcela na vašem zařízení a žádný dotaz ani schéma z něj nikdy neopustí. Zkopírujte výsledek, stáhněte si jej jako soubor .txt nebo jej pošlete zpět na vstup, abyste nadále zdokonalovali původní dotaz.

Časté dotazy

Podporuje JOINy?
Jeden JOIN se převede na $lookup plus $unwind fázi v agregačním pipeline, když je zapnuta možnost "Převést JOIN na $lookup". RIGHT JOIN se převede jako LEFT JOIN a další JOINy za prvním se zaznamená jako ignorované.
Co se stane s GROUP BY a agregačními funkcemi jako COUNT nebo SUM?
Stanou se $group fází (se správným akumulátorem pro každou funkci) následovanou $project fází, která obnovuje původní názvy sloupců, vše uvnitř agregačního pipeline.
Jaké SQL funkce nejsou podporovány?
Poddotazy, UNION a CASE výrazy nemají přímý ekvivalent v MongoDB a produkují jasnu chybu místo nesprávného dotazu. HAVING se přijímá, ale zahodí se s varováním, protože potřebuje druhou $match fázi, kterou si sám přidáte.
Mohu dostat plain JSON dotaz místo mongosh příkazu?
Ano. Přepněte "Výstup jako" na JSON dotaz a obdržíte dokument dotazu (kolekci, operaci, filtr a tak dále), který si můžete parsovat nebo vložit do vlastního kódu místo volání shell.
Je můj SQL někde nahraný?
Ne. Konverze se provádí zcela ve vašem prohlížeči — váš dotaz, názvy tabulek a data nikdy neopustí vaše zařízení.