Zum Inhalt springen
100% lokal

SQL zu MongoDB Abfrage

Eine SQL SELECT-Anweisung in einen MongoDB find() Aufruf oder eine Aggregations-Pipeline konvertieren.

Eingabe
Ausgabe

SQL zu MongoDB Abfrage

Geben Sie eine SQL SELECT-Anweisung ein und dieses Tool konvertiert sie in die entsprechende MongoDB-Abfrage – entweder einen mongosh-Methodenaufruf, den Sie in der Shell ausführen können, oder ein JSON-Abfragedokument für Ihren eigenen Treibercode. Es liest die WHERE-Klausel, ORDER BY, LIMIT und OFFSET und konvertiert diese in einen MongoDB-Filter, eine Sortierung, Limit und Skip, sodass "SELECT id, name FROM users WHERE age > 18 ORDER BY name DESC LIMIT 10" zu einem einsatzbereiten find() mit den entsprechenden Filter- und Sortierobjekten wird.

Es versteht auch Aggregationen. COUNT, SUM, AVG, MIN und MAX in der SELECT-Liste kombiniert mit GROUP BY erzeugen eine $group-Stufe gefolgt von einer $project-Stufe, die die gruppierten _id-Felder zurück in ihre ursprünglichen Spalten umbenennt. Ein JOIN wird zu einer $lookup plus $unwind-Stufe, wenn "$lookup in JOIN konvertieren" aktiviert ist – deaktivieren Sie es und der Join wird stattdessen gelöscht, mit einer Notiz, die erklärt, warum. "Spaltennamen zu camelCase konvertieren" wandelt snake_case-Spalten wie first_name in firstName um, was der typischen Mongoose-Benennung entspricht, und die Einrückung können Sie selbst festlegen.

Nicht jedes SQL-Konstrukt hat ein sauberes MongoDB-Äquivalent – Unterabfragen, UNION, CASE-Ausdrücke und HAVING lassen sich nicht auf eine einzelne Abfrage oder Pipeline abbilden. Anstatt stillschweigend eine fehlerhafte Abfrage zu erzeugen, meldet das Tool einen klaren Fehler, der das nicht unterstützte Konstrukt benennt, oder fügt bei Dingen, die es umgehen kann (ein zusätzlicher JOIN, ein gelöschtes HAVING, eine nicht gruppierte SELECT-Spalte), einen kurzen Warnungskommentar über der generierten Abfrage hinzu, der erklärt, was sich geändert hat.

Alles läuft lokal in Ihrem Browser ab: die SQL wird vollständig auf Ihrem Gerät geparst und konvertiert, und keine Abfrage oder Schema verlässt es jemals. Kopieren Sie das Ergebnis, laden Sie es als .txt-Datei herunter oder geben Sie es zurück in die Eingabe, um die ursprüngliche Abfrage weiter zu verfeinern.

Häufige Fragen

Unterstützt es JOINs?
Ein einzelner JOIN wird in eine $lookup plus $unwind-Stufe in einer Aggregations-Pipeline konvertiert, wenn "$lookup in JOIN konvertieren" aktiviert ist. RIGHT JOIN wird als LEFT JOIN konvertiert, und zusätzliche JOINs nach dem ersten werden als ignoriert vermerkt.
Was passiert mit GROUP BY und Aggregatfunktionen wie COUNT oder SUM?
Sie werden zu einer $group-Stufe (mit dem richtigen Akkumulator für jede Funktion) gefolgt von einer $project-Stufe, die die ursprünglichen Spaltennamen wiederherstellt, alles innerhalb einer Aggregations-Pipeline.
Welche SQL-Funktionen werden nicht unterstützt?
Unterabfragen, UNION und CASE-Ausdrücke haben keine direkte MongoDB-Entsprechung und erzeugen einen klaren Fehler, anstatt eine falsche Abfrage zu erzeugen. HAVING wird akzeptiert, aber mit einer Warnung gelöscht, da eine zweite $match-Stufe erforderlich ist, die Sie selbst hinzufügen.
Kann ich statt eines mongosh-Befehls eine einfache JSON-Abfrage erhalten?
Ja. Wechseln Sie "Ausgabe als" zu JSON-Abfrage, um ein Abfragedokument zu erhalten (Sammlung, Operation, Filter usw.), das Sie analysieren oder in Ihren eigenen Code einbetten können, anstatt einen Shell-Aufruf zu erhalten.
Wird mein SQL irgendwo hochgeladen?
Nein. Die Konvertierung läuft vollständig in Ihrem Browser – Ihre Abfrage, Tabellennamen und Daten verlassen Ihr Gerät nie.