Hoppa till innehåll
100% lokalt

SQL till MongoDB-fråga

Konvertera en SQL SELECT-sats till ett MongoDB find()-anrop eller aggregeringspipeline.

Inmatning
Utmatning

SQL till MongoDB-fråga

Klistra in en SQL SELECT-sats och det här verktyget konverterar den till motsvarande MongoDB-fråga – antingen ett mongosh-metodanrop som du kan köra i skalet, eller ett JSON-frågedokument för din egen drivarkod. Den läser WHERE-klausulen, ORDER BY, LIMIT och OFFSET och omvandlar dem till ett MongoDB-filter, sortering, gräns och överhoppning, så "SELECT id, name FROM users WHERE age > 18 ORDER BY name DESC LIMIT 10" blir ett klart find()-anrop med motsvarande filter- och sorteringsobjekt.

Det förstår också aggregering. COUNT, SUM, AVG, MIN och MAX i SELECT-listan kombinerat med GROUP BY producerar ett $group-steg följt av ett $project-steg som byter namn på de grupperade _id-fälten tillbaka till deras ursprungliga kolumner. En JOIN blir ett $lookup plus $unwind-steg när "Konvertera JOIN till $lookup" är aktiverat – stäng av det och fogningen tas bort istället, med en anteckning som förklarar varför. "Konvertera kolumnnamn till camelCase" omvandlar snake_case-kolumner som first_name till firstName, vilket motsvarar typisk Mongoose-namngivning, och du kan ställa in indentering själv.

Icke alla SQL-konstruktioner har motsvarighet i MongoDB – underfrågorna, UNION, CASE-uttryck och HAVING kan inte mappas till en enda fråga eller pipeline. I stället för att tyst producera en felaktig fråga rapporterar verktyget ett tydligt fel med namnet på den konstruktion som inte stöds, eller för saker det kan arbeta runt (en extra JOIN, en borttagen HAVING, en ogruperad SELECT-kolumn), lägger det till en kort varningskommentar ovanför den genererade frågan som förklarar vad som har ändrats.

Allt körs lokalt i din webbläsare: SQL:en parsas och konverteras helt på din enhet, och ingen fråga eller schema lämnar den någonsin. Kopiera resultatet, ladda ned det som en .txt-fil, eller skicka det tillbaka till inmatningen för att fortsätta förfina den ursprungliga frågan.

FAQ

Stöder den JOINs?
En enda JOIN konverteras till ett $lookup plus $unwind-steg i en aggregeringspipeline när "Konvertera JOIN till $lookup" är aktiverat. RIGHT JOIN konverteras som LEFT JOIN, och ytterligare JOINs bortom den första noteras som ignorerade.
Vad händer med GROUP BY och aggregeringsfunktioner som COUNT eller SUM?
De blir till ett $group-steg (med rätt ackumulator för varje funktion) följt av ett $project-steg som återställer de ursprungliga kolumnnamnen, allt inom en aggregeringspipeline.
Vilka SQL-funktioner stöds inte?
Underfrågorna, UNION och CASE-uttryck har ingen direkt MongoDB-motsvarighet och producerar ett tydligt fel i stället för en felaktig fråga. HAVING accepteras men tas bort med en varning, eftersom ett andra $match-steg som du lägger till själv krävs.
Kan jag få en vanlig JSON-fråga istället för ett mongosh-kommando?
Ja. Byt "Utmatning som" till JSON-fråga för att få ett frågedokument (samling, operation, filter, och så vidare) som du kan tolka eller bädda in i din egen kod istället för ett skalpanrop.
Laddas min SQL någonstans upp?
Nej. Konverteringen körs helt i din webbläsare – din fråga, tabellnamn och data lämnar aldrig din enhet.