SQL naar MongoDB query
Een SQL SELECT-statement converteren naar een MongoDB find()-aanroep of aggregatie-pipeline.
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.