Collez n'importe quelle requête SQL et obtenez instantanément son équivalent MongoDB. Prend en charge SELECT, INSERT, UPDATE, DELETE, GROUP BY, HAVING, LIKE, IN, IS NULL et bien plus.
Cet outil traduit les requêtes SQL standard vers la syntaxe équivalente de MongoDB, une base de données NoSQL orientée documents. Il s'adresse aux développeurs qui migrent depuis une base relationnelle ou qui travaillent avec les deux mondes en parallèle.
Saisissez votre requête SQL dans le panneau de gauche : la requête MongoDB correspondante s'affiche à côté. L'analyse repose sur un véritable parseur SQL, si bien que les clauses WHERE complexes et les agrégations de base sont converties correctement plutôt qu'approximées.
Opérations SQL prises en chargeLa sélection des colonnes et les conditions WHERE deviennent un appel find() de MongoDB avec un filtre de requête et une projection.
ORDER BY devient sort(), LIMIT devient limit() et OFFSET devient skip().
GROUP BY associé aux fonctions d'agrégation (COUNT, SUM, AVG, MIN, MAX) est traduit en pipeline d'agrégation MongoDB.
Un filtre HAVING devient une seconde étape $match du pipeline, appliquée après le regroupement.
Les motifs LIKE utilisant % (n'importe quelle suite de caractères) et _ (un seul caractère) sont convertis en expressions régulières MongoDB.
Prise en charge complète de IN/$in, NOT IN/$nin, IS NULL, IS NOT NULL/$ne, AND/$and et OR/$or, y compris les parenthèses pour grouper les conditions.
Un INSERT d'une seule ligne devient insertOne(), un INSERT multiligne devient insertMany(). Les noms de colonnes deviennent les noms de champs du document.
La clause SET devient l'opérateur $set de MongoDB et la condition WHERE devient le document de filtre.
DELETE FROM avec une condition WHERE devient deleteMany(). À manier avec précaution : sans clause WHERE, tous les documents sont supprimés.
| Opérateur SQL | Opérateur MongoDB | Remarques |
|---|---|---|
| = | $eq (or implicit) | Correspondance exacte |
| != / <> | $ne | Différent de |
| > | $gt | Supérieur à |
| >= | $gte | Supérieur ou égal à |
| < | $lt | Inférieur à |
| <= | $lte | Inférieur ou égal à |
| IN (...) | $in | Valeur présente dans la liste |
| NOT IN (...) | $nin | Valeur absente de la liste |
| LIKE '%x%' | $regex: /.*x.*/ | % devient .*, _ devient . |
| NOT LIKE | $not: /pattern/ | Expression régulière négative |
| IS NULL | field: null | Inclut aussi les champs absents |
| IS NOT NULL | $ne: null | Le champ existe et n'est pas null |
| AND | $and | Toutes les conditions doivent être vraies |
| OR | $or | Une seule condition suffit |
| COUNT(*) | $sum: 1 | Dans l'étape $group |
| SUM(f) | $sum: "$f" | Dans l'étape $group |
| AVG(f) | $avg: "$f" | Dans l'étape $group |
| MIN(f) | $min: "$f" | Dans l'étape $group |
| MAX(f) | $max: "$f" | Dans l'étape $group |
| ORDER BY ASC | sort({ f: 1 }) | Croissant |
| ORDER BY DESC | sort({ f: -1 }) | Décroissant |
| LIMIT n | limit(n) | |
| OFFSET n | skip(n) |
Vous passez de MySQL, PostgreSQL, SQL Server ou SQLite à MongoDB ? Traduisez rapidement la logique de vos requêtes existantes et réduisez le risque d'erreurs pendant la migration.
Si vous connaissez déjà SQL, voir chaque concept mis en regard de son équivalent est la voie la plus rapide vers le langage de requête de MongoDB et le modèle documentaire qui le sous-tend.
Même les développeurs MongoDB expérimentés raisonnent souvent d'abord en SQL. Utilisez le convertisseur comme référence rapide pour transposer ce modèle mental dans la bonne syntaxe.
Partagez les requêtes converties avec des collègues venus du monde relationnel. Une référence commune supprime les frictions entre deux cultures de bases de données.
Collez votre instruction SQL dans le panneau de saisie et appuyez sur Convertir. L'outil analyse le SQL et renvoie la commande équivalente pour le shell MongoDB : SELECT devient find(), les conditions WHERE deviennent un filtre de requête, ORDER BY devient sort(), et LIMIT et OFFSET deviennent limit() et skip(). Aucune inscription ni installation n'est nécessaire.
MongoDB ne possède pas de mot-clé LIKE : la recherche par motif se fait avec $regex. Le joker % de SQL devient .* et le joker _ devient un simple point. Ainsi, WHERE name LIKE '%mongo%' se convertit en { name: { $regex: /.*mongo.*/ } }, et NOT LIKE est encapsulé dans $not.
GROUP BY correspond à un pipeline d'agrégation comportant une étape $group. Les colonnes regroupées deviennent l'_id de cette étape et les fonctions d'agrégation deviennent des accumulateurs : COUNT(*) devient { $sum: 1 }, SUM(champ) devient { $sum: "$champ" }, tandis que AVG, MIN et MAX correspondent à $avg, $min et $max. Une clause HAVING devient une seconde étape $match placée après $group.
Pas automatiquement. Un JOIN dans MongoDB nécessite une étape $lookup ainsi qu'un choix de modélisation : les données liées doivent-elles être imbriquées ou référencées ? Cela dépend de la conception de votre schéma et non du seul SQL. Convertissez ici les requêtes portant sur une seule table et ajoutez vous-même l'étape $lookup.
Non. Ce convertisseur traduit la syntaxe des requêtes, pas les données. Pour déplacer les enregistrements eux-mêmes, il vous faut un outil de migration tel que MongoDB Relational Migrator, gratuit et compatible avec Oracle, SQL Server, MySQL et PostgreSQL. Utilisez ce convertisseur en parallèle pour traduire les requêtes déjà présentes dans le code de votre application.
Oui. L'outil est entièrement gratuit, fonctionne dans votre navigateur, ne demande aucun compte et ne conserve aucune de vos requêtes. Il est disponible en anglais, italien, russe, chinois, français et espagnol.
Convertir les requêtes est la dernière étape. Ces guides traitent de ce qui décide du succès d'une migration : comment repenser un schéma relationnel en documents.