SQLからMongoDBクエリ変換
SQL SELECT文を完全な句サポート付きでMongoDBのfind()およびaggregate()クエリに変換します。
このツールについて
SQLからMongoDBクエリ変換ツールは、SQL SELECT文を同等の
MongoDBクエリ構文に変換する無料のブラウザベースツールです。リレーショナル
データベースからMongoDBへの移行、MongoDBのクエリ言語の学習、または
馴染みのあるSQLパターンの簡単な変換リファレンスが必要な場合に、
db.collection.find()とdb.collection.aggregate()の
両方の形式を数秒で生成します。
変換ツールはSQLを解析し、各句をMongoDBの対応する形式にマッピングします。
WHERE、ORDER BY、LIMITを含むシンプルなクエリは、
フィルタードキュメント、プロジェクション、カーソル修飾子を使用した
簡潔なfind()構文で表現されます。GROUP BY、集計関数
(COUNT、SUM、AVG、MIN、MAX)、
またはJOIN操作を含むより高度なクエリは、自動的にMongoDBの
aggregate()パイプラインに変換され、$match、$group、
$sort、$lookup、$unwindなどのステージが使用されます。
SQL比較演算子はMongoDBクエリ演算子にマッピングされます:
=は完全一致に、>は$gtに、>=は$gteに、
INは$inに、LIKEは$regexに、BETWEENは
$gte/$lteの組み合わせフィルターになります。論理演算子
ANDとORは$andと$or配列式に変換されます。
IS NULLとIS NOT NULLチェックはnull比較に変換されます。
SQLのJOIN句はMongoDBの$lookup集計ステージに変換されます。
これはコレクション間のleft outer joinを実行します。ツールは適切な
from、localField、foreignField、asパラメータを
生成し、結果をフラット化するための$unwindステージが続きます。
すべての処理はブラウザ内で完結します。SQL文がお使いの端末から外に 出ることはなく、サーバーとのやり取り、ログ記録、サードパーティ サービスの関与はありません。本番クエリや機密性の高いデータ構造でも 安全に使用できます。
使い方
- 左側のSQL InputパネルにSQL
SELECT文を貼り付けます。 - 入力しながら右パネルにMongoDBクエリ出力が自動更新されます。
- シンプルなクエリの場合、パネル上部のボタンで**find()とaggregate()**出力形式を切り替えられます。
GROUP BY、JOIN、集計関数を含むクエリの場合、ツールは自動的に**aggregate()**パイプライン形式を使用します。- CopyをクリックするかCtrl+Shift+Cを押して、生成されたMongoDBクエリをクリップボードにコピーします。
- SampleをクリックしてサンプルSQLクエリを読み込み、変換の動作を確認できます。
- Clearをクリックして両方のパネルをリセットし、新しい変換を開始します。
人気の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であるか存在しないドキュメントにマッチします。
関連ツール
SQLフォーマッター
MySQL、PostgreSQL、SQLite対応でSQLクエリの整形、美化、圧縮を行います。
SQL → Prismaスキーマ変換
SQL CREATE TABLE文をPrismaスキーマモデルに変換します。一般的なSQL型とリレーションに対応。
JSON → SQL INSERT変換
JSON配列をSQL INSERT文に変換。一括挿入、テーブル名カスタマイズ、複数SQLダイアレクト対応。
SQL → Sequelizeモデル変換
SQL CREATE TABLE文をSequelizeモデル定義に変換します。DataTypesマッピングとアソシエーション対応。
SQL → Drizzleスキーマ変換
SQL CREATE TABLE文をDrizzle ORMスキーマ定義に変換します。型安全なカラムビルダー付き。
SQL JOINビジュアライザー
SQL JOINの種類をインタラクティブなベン図とライブ結果テーブルで可視化します。