Preskočiť na obsah
100% lokálne

SQL na MongoDB otázka

Konvertujte príkaz SQL SELECT do MongoDB volania find() alebo agregačného pipeline.

Vstup
Výstup

SQL na MongoDB otázka

Vložte príkaz SQL SELECT a tento nástroj ho konvertuje na ekvivalentnú MongoDB otázku — buď mongosh volanie, ktoré môžete spustiť v shell, alebo plain JSON dokument otázky pre váš vlastný kód ovládača. Číta klauzulu WHERE, ORDER BY, LIMIT a OFFSET a premieňa ich na MongoDB filter, sort, limit a skip, takže "SELECT id, name FROM users WHERE age > 18 ORDER BY name DESC LIMIT 10" sa stane find() pripravený na spustenie s zodpovedajúcimi filtermi a objektmi sort.

Rozmení si aj agregáciu. COUNT, SUM, AVG, MIN a MAX v zozname SELECT v kombinácii s GROUP BY vytvoríme $group fázu nasledovanú $project fázou, ktorá premieňa zoskupené polia _id späť na ich pôvodné stĺpce. JOIN sa stane $lookup plus $unwind fázou, keď je zapnutá možnosť "Konvertovať JOIN na $lookup" — vypnite ju a JOIN sa v namiesto toho ignoruje, s poznámkou vysvetľujúcou prečo. "Konvertovať názvy stĺpcov na camelCase" pretvára stĺpce typu snake_case, ako napríklad first_name, na firstName, čo zodpovedá typickému pomenovaní v Mongoose, a odsadenie si nastavíte vy.

Nie každý SQL konštrukt má čisté ekvivalenty MongoDB — podotázky, UNION, CASE výrazy a HAVING sa nemapujú na jednu otázku alebo pipeline. Namiesto tichej produkcie nesprávnej otázky nástroj hlási jasnu chybu s názvom nepodporovaného konštruktu, alebo pre veci, ktoré dokáže obísť (ďalší JOIN, zahodený HAVING, nezoskupený stĺpec SELECT), pridáva krátky komentár varovania nad vygenerovanou otázkou vysvetľujúci, čo sa zmenilo.

Všetko sa vykonáva lokálne vo vašom prehliadači: SQL sa parsuje a konvertuje úplne na vašom zariadení, a žiadna otázka ani schéma z neho nikdy nevyjde. Skopírujte výsledok, stiahnite si ho ako súbor .txt alebo ho pošlite späť do vstupu, aby ste naďalej zdokonaľovali pôvodnú otázku.

Časté otázky

Podporuje JOINy?
Jeden JOIN sa konvertuje na $lookup plus $unwind fázu v agregačnom pipeline, keď je zapnutá možnosť "Konvertovať JOIN na $lookup". RIGHT JOIN sa konvertuje ako LEFT JOIN a ďalšie JOINy po prvom sa zaznamená ako ignorované.
Čo sa stane s GROUP BY a agregačnými funkciami ako COUNT alebo SUM?
Stanú sa $group fázou (s správnym akumulátorom pre každú funkciu) nasledovanou $project fázou, ktorá obnovuje pôvodné názvy stĺpcov, všetko vnútri agregačného pipeline.
Aké SQL funkcie nie sú podporované?
Podotázky, UNION a CASE výrazy nemajú priamy ekvivalent v MongoDB a produkujú jasnu chybu namiesto nesprávnej otázky. HAVING sa akceptuje, ale zahodí sa s varovním, pretože potrebuje druhú $match fázu, ktorú si sám pridáte.
Môžem dostať plain JSON otázku namiesto mongosh príkazu?
Áno. Prepnite "Výstup ako" na JSON otázku a dostanete dokument otázky (kolekciu, operáciu, filter a ďalšie), ktorý si môžete parseovat alebo vložiť do vlastného kódu namiesto volania shell.
Je moja SQL niekde uploadnutá?
Nie. Konverzia sa vykonáva úplne vo vašom prehliadači — vaša otázka, názvy tabuliek a dáta nikdy neopúšťajú vaše zariadenie.