Aller au contenu
Tout en local

Requête SQL vers MongoDB

Convertissez une instruction SELECT SQL en un appel find() ou un pipeline d'agrégation MongoDB.

Entrée
Sortie

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.

FAQ

Prend-il en charge les JOINs?
Une seule JOIN est convertie en un stage $lookup plus $unwind dans un pipeline d'agrégation lorsque "Convertir JOIN en $lookup" est activé. RIGHT JOIN est converti en LEFT JOIN, et les JOIN supplémentaires au-delà du premier sont notés comme ignorés.
Qu'advient-il de GROUP BY et des fonctions d'agrégation comme COUNT ou SUM?
Elles deviennent un stage $group (avec le bon accumulateur pour chaque fonction) suivi d'un stage $project qui restaure les noms de colonnes originaux, tout à l'intérieur d'un pipeline d'agrégation.
Quelles fonctionnalités SQL ne sont pas supportées?
Les sous-requêtes, UNION et les expressions CASE n'ont pas d'équivalent direct en MongoDB et produisent une erreur claire plutôt qu'une requête incorrecte. HAVING est accepté mais supprimé avec un avertissement, car il nécessite un deuxième stage $match que vous ajoutez vous-même.
Puis-je obtenir une requête JSON simple au lieu d'une commande mongosh?
Oui. Changez "Résultat en tant que" en requête JSON pour obtenir un document de requête (collection, opération, filtre, etc.) que vous pouvez analyser ou intégrer dans votre propre code au lieu d'un appel de shell.
Mon SQL est-il téléchargé quelque part?
Non. La conversion s'exécute entièrement dans votre navigateur: votre requête, les noms de table et les données ne quittent jamais votre appareil.