SQLからMongoDBクエリ変換

SQL SELECT文を完全な句サポート付きでMongoDBのfind()およびaggregate()クエリに変換します。

このツールについて

SQLからMongoDBクエリ変換ツールは、SQL SELECT文を同等の MongoDBクエリ構文に変換する無料のブラウザベースツールです。リレーショナル データベースからMongoDBへの移行、MongoDBのクエリ言語の学習、または 馴染みのあるSQLパターンの簡単な変換リファレンスが必要な場合に、 db.collection.find()db.collection.aggregate()の 両方の形式を数秒で生成します。

変換ツールはSQLを解析し、各句をMongoDBの対応する形式にマッピングします。 WHEREORDER BYLIMITを含むシンプルなクエリは、 フィルタードキュメント、プロジェクション、カーソル修飾子を使用した 簡潔なfind()構文で表現されます。GROUP BY、集計関数 (COUNTSUMAVGMINMAX)、 またはJOIN操作を含むより高度なクエリは、自動的にMongoDBの aggregate()パイプラインに変換され、$match$group$sort$lookup$unwindなどのステージが使用されます。

SQL比較演算子はMongoDBクエリ演算子にマッピングされます: =は完全一致に、>$gtに、>=$gteに、 IN$inに、LIKE$regexに、BETWEEN$gte/$lteの組み合わせフィルターになります。論理演算子 ANDOR$and$or配列式に変換されます。 IS NULLIS NOT NULLチェックはnull比較に変換されます。

SQLのJOIN句はMongoDBの$lookup集計ステージに変換されます。 これはコレクション間のleft outer joinを実行します。ツールは適切な fromlocalFieldforeignFieldasパラメータを 生成し、結果をフラット化するための$unwindステージが続きます。

すべての処理はブラウザ内で完結します。SQL文がお使いの端末から外に 出ることはなく、サーバーとのやり取り、ログ記録、サードパーティ サービスの関与はありません。本番クエリや機密性の高いデータ構造でも 安全に使用できます。

使い方

  1. 左側のSQL InputパネルにSQL SELECT文を貼り付けます。
  2. 入力しながら右パネルにMongoDBクエリ出力が自動更新されます。
  3. シンプルなクエリの場合、パネル上部のボタンで**find()aggregate()**出力形式を切り替えられます。
  4. GROUP BYJOIN、集計関数を含むクエリの場合、ツールは自動的に**aggregate()**パイプライン形式を使用します。
  5. CopyをクリックするかCtrl+Shift+Cを押して、生成されたMongoDBクエリをクリップボードにコピーします。
  6. SampleをクリックしてサンプルSQLクエリを読み込み、変換の動作を確認できます。
  7. Clearをクリックして両方のパネルをリセットし、新しい変換を開始します。

人気のSQL->MongoDB変換例

すべてのSQL->MongoDB変換例を見る ->

よくある質問

どのSQL文に対応していますか?

ツールはSQL SELECT文をサポートしており、SELECT、FROM、WHERE、JOIN(INNER、LEFT、RIGHT)、GROUP BY、HAVING、ORDER BY、LIMIT、OFFSET句に対応しています。DISTINCT、カラムエイリアス、集計関数(COUNT、SUM、AVG、MIN、MAX)もサポートしています。INSERT、UPDATE、DELETE、DDL文には対応していません。

SQL JOINはどのようにMongoDBに変換されますか?

SQL JOIN句はMongoDBの$lookup集計ステージに変換されます。INNER JOINは$lookupの後に$unwindが続き、LEFT JOINは$lookupの後にpreserveNullAndEmptyArraysをtrueに設定した$unwindが続きます。ON条件はlocalFieldとforeignFieldパラメータにマッピングされます。

find()とaggregate()はいつ使い分けられますか?

WHERE、ORDER BY、LIMITを含むシンプルなクエリはfind()構文を使用します。これはより簡潔で多くの場合高速です。GROUP BY、HAVING、集計関数(COUNT、SUMなど)、またはJOINを含むクエリは自動的にaggregate()パイプラインを使用します。これらの操作はMongoDBでaggregate()が必要です。シンプルなクエリでは手動で2つの形式を切り替えることもできます。

SQL LIKEはどのようにMongoDBに変換されますか?

SQL LIKEパターンはMongoDBの$regex式に変換されます。%ワイルドカードは.*(任意の文字列にマッチ)に、_ワイルドカードは.(任意の1文字にマッチ)になります。regexはデフォルトで大文字小文字を区別しません。これは多くのデータベースでのSQL LIKEの一般的な動作と一致します。

サブクエリやネストされたSELECTに対応していますか?

現在、ツールは単一レベルのSELECT文をサポートしています。ネストされたサブクエリ、CTE(WITH句)、UNION操作には対応していません。複雑なクエリの場合は、個別の変換に分割してMongoDBの操作を手動で組み合わせることを検討してください。

データは安全ですか?

はい。すべての解析とクエリ生成はJavaScriptを使用してブラウザ内で完全に実行されます。データがサーバーに送信されることはありません。ツール使用中にブラウザの開発者ツールのネットワークタブで確認できます。

NULLチェックはどのように処理されますか?

SQL IS NULLはnullをチェックするMongoDBフィルター(例:{ field: null })に変換され、IS NOT NULLは{ field: { $ne: null } }に変換されます。これらのチェックはフィールドがnullであるか存在しないドキュメントにマッチします。

関連ツール