Ga naar inhoud
100% lokaal

SQL naar MongoDB query

Een SQL SELECT-statement converteren naar een MongoDB find()-aanroep of aggregatie-pipeline.

Invoer
Uitvoer

SQL naar MongoDB query

Plak een SQL SELECT-statement en dit hulpprogramma zet het om in de equivalente MongoDB-query – ofwel een mongosh-methodeanroep die u in de shell kunt uitvoeren, ofwel een JSON-querydocument voor uw eigen stuurprogrammacode. Het leest de WHERE-clausule, ORDER BY, LIMIT en OFFSET en zet deze om in een MongoDB-filter, sortering, limiet en skip, zodat "SELECT id, name FROM users WHERE age > 18 ORDER BY name DESC LIMIT 10" een kant-en-klare find() met de overeenkomstige filter- en sorteringsobjecten wordt.

Het begrijpt ook aggregatie. COUNT, SUM, AVG, MIN en MAX in de SELECT-lijst gecombineerd met GROUP BY produceren een $group-fase gevolgd door een $project-fase die de gegroepeerde _id-velden terugnamen naar hun originele kolommen. Een JOIN wordt een $lookup plus $unwind-fase wanneer "$lookup naar JOIN converteren" is ingeschakeld – schakel het uit en de join wordt in plaats daarvan verwijderd, met een opmerking die uitlegt waarom. "Kolomnamen naar camelCase converteren" zet snake_case-kolommen zoals first_name om in firstName, wat aansluit bij typische Mongoose-naamgeving, en u kunt de inspringing zelf instellen.

Niet elk SQL-construct heeft een schoon MongoDB-equivalent – subquery's, UNION, CASE-expressies en HAVING kunnen niet op één query of pipeline worden afgestemd. In plaats van stilzwijgend een onjuiste query te produceren, rapporteert het hulpprogramma een duidelijke fout met de naam van het niet-ondersteunde construct, of voegt voor dingen die het kan omzeilen (een extra JOIN, een verwijderde HAVING, een niet-gegroepeerde SELECT-kolom) een kort waarschuwingscommentaar boven de gegenereerde query toe dat uitlegt wat er is veranderd.

Alles wordt lokaal in uw browser uitgevoerd: de SQL wordt volledig op uw apparaat geparseerd en geconverteerd, en geen query of schema verlaat het ooit. Kopieer het resultaat, download het als .txt-bestand of stuur het terug naar de invoer om de originele query verder aan te scherpen.

FAQ

Ondersteunt het JOINs?
Een enkele JOIN wordt geconverteerd naar een $lookup plus $unwind-fase in een aggregatie-pipeline wanneer "$lookup naar JOIN converteren" is ingeschakeld. RIGHT JOIN wordt als LEFT JOIN geconverteerd, en aanvullende JOINs na de eerste worden gemarkeerd als genegeerd.
Wat gebeurt er met GROUP BY en geaggregeerde functies zoals COUNT of SUM?
Ze worden omgezet in een $group-fase (met de juiste accumulator voor elke functie) gevolgd door een $project-fase die de originele kolomnamen herstelt, allemaal binnen een aggregatie-pipeline.
Welke SQL-functies worden niet ondersteund?
Subquery's, UNION en CASE-expressies hebben geen directe MongoDB-equivalent en produceren een duidelijke fout in plaats van een onjuiste query. HAVING wordt geaccepteerd maar verwijderd met een waarschuwing, omdat een tweede $match-fase nodig is die u zelf toevoegt.
Kan ik een gewoon JSON-query krijgen in plaats van een mongosh-commando?
Ja. Schakel "Uitvoer als" naar JSON-query om een querydocument te krijgen (verzameling, bewerking, filter, enzovoort) dat u kunt parseren of in uw eigen code kunt insluiten in plaats van een shell-aanroep.
Wordt mijn SQL ergens geüpload?
Nee. De conversie wordt volledig in uw browser uitgevoerd – uw query, tabelnamen en gegevens verlaten uw apparaat nooit.