Requête SQL vers MongoDB
Convertissez une instruction SELECT SQL en un appel find() ou un pipeline d'agrégation MongoDB.
Requête SQL vers MongoDB
Collez une instruction SELECT SQL et cet outil la convertit en la requête MongoDB équivalente: soit un appel de méthode mongosh que vous pouvez exécuter dans le shell, soit un document de requête JSON brut pour votre propre code. Il lit la clause WHERE, ORDER BY, LIMIT et OFFSET et les transforme en un filtre MongoDB, un tri, limit et skip, donc "SELECT id, name FROM users WHERE age > 18 ORDER BY name DESC LIMIT 10" devient un find() prêt à l'exécution avec les objets de filtre et de tri correspondants.
Il comprend également l'agrégation. COUNT, SUM, AVG, MIN et MAX dans la liste SELECT combinés avec GROUP BY produisent un stage $group suivi d'un stage $project qui renomme les champs _id regroupés en leurs colonnes originales. Une JOIN devient un stage $lookup plus $unwind lorsque "Convertir JOIN en $lookup" est activé: désactivez-le et la jointure est supprimée à la place, avec une note expliquant pourquoi. "Convertir les noms de colonne en camelCase" transforme les colonnes snake_case comme first_name en firstName, correspondant à la dénomination typique de Mongoose, et l'indentation est vôtre à définir.
Tous les construits SQL n'ont pas d'équivalent direct en MongoDB: les sous-requêtes, UNION, les expressions CASE et HAVING ne correspondent pas à une seule requête ou pipeline. Plutôt que de produire silencieusement une requête incorrecte, l'outil signale une erreur claire nommant le construit non supporté, ou, pour les choses avec lesquelles il peut travailler (une JOIN supplémentaire, un HAVING supprimé, une colonne SELECT non groupée), ajoute un bref commentaire d'avertissement au-dessus de la requête générée expliquant ce qui a changé.
Tout s'exécute localement dans votre navigateur: le SQL est analysé et converti entièrement sur votre appareil, et aucune requête ou schéma ne quitte jamais votre appareil. Copiez le résultat, téléchargez-le en tant que fichier .txt, ou renvoyez-le dans l'entrée pour continuer à affiner la requête originale.