IntelliJ IDEA 2026.1 Help

MongoDB の SQL

MongoDB と Amazon DocumentDB では、データの操作やその他の処理を実行するために、JavaScript で mongo シェル用のスクリプトを記述します。 主に SQL でデータをクエリする開発者にとって、MongoDB または Amazon DocumentDB のコレクションでも SQL を使用すると便利です。 IntelliJ IDEA は、SQL クエリを JavaScript に変換します。

  • SQL の JavaScript バージョンを表示するには、クエリを右クリックして JS スクリプトの表示 を選択します。

  • 現在の実装では、SELECT クエリと次のクエリがサポートされています: JOINWHEREGROUP BYHAVINGORDER BYLIMITOFFSET

SQL クエリの JavaScript 翻訳を参照する

  • クエリを右クリックして、 JS スクリプトの表示 を選択します。 JavaScript コードをクリップボードにコピーするには、 JS スクリプトをクリップボードにコピー をクリックします。

    JS スクリプトのプレビュー からスクリプトを変更して実行できます。

alt_translated_js_code
alt_translated_js_code

データ型

IntelliJ IDEA は、次のデータ型をサポートしています。

  • 文字列、整数、浮動小数点数、ブール値

  • NULL、NAN、INFINITY

  • 配列([1, 2, 3] )とマップ ({a: 1, b: 2, c: 3})

配列とマップには任意の式を含めることができます。

SELECT [1, 3 + 1 - 2, price] AS elements FROM sales; SELECT {a: 1 + 2, b: NULL, c: FALSE, d: [1, 2]} FROM sales;

文字列リテラルは、一重引用符または二重引用符で使用できます。

引用符なしで列名を記述するか、アクサングラーブ(` )を使用します。

SELECT _id, `acquisitions`, `category_code`, `description`, email_address, phone_number FROM companies WHERE category_code = 'social' AND description = "Mobile Dating";

オブジェクトコンストラクター

次のオブジェクトコンストラクターを使用できます: BinDataHexDataUUIDMD5ObjectID日付ISODateコードDBRef正規表現NumberIntNumberLongNumberDecimalタイムスタンプMinKeyMaxKey

new キーワードは使用しても省略しても構いません。 IntelliJ IDEA は、MongoDB または Amazon DocumentDB のクエリに new キーワードを自動で追加します。 この機能は、 Date()new Date() の違いにより、 日付 オブジェクトコンストラクターには適用されません。 Date() は現在の日付を文字列として返し、 new Date() は Date オブジェクトとして返します。

関数名が不明な場合、IntelliJ IDEA は関数名の前に new キーワードがあるかどうかを検索します。 new キーワードがある場合、その名前はオブジェクトコンストラクターとして扱われます。 それ以外の場合は、関数呼び出しとして扱われます。 例: 次のクエリ:

SELECT new UnknownTypeConstructor() AS A, new NumberInt() AS B, NumberInt(1) AS C FROM companies;

次のように翻訳されます:

db.getSiblingDB("admin").getCollection("companies").aggregate([ { $project: {"A": {$literal: new UnknownTypeConstructor()}, "B": {$literal: new NumberInt()}, "C": {$literal: new NumberInt(1)}, "_id": 0} } ])

関数

MongoDB および Amazon DocumentDB の集計パイプライン演算子は、 mapreducefilterlet を除き、すべて使用できます。 また、COUNT(*) は使用できますが、まだサポートされていない COUNT (式) は使用できません。

MongoDB と Amazon DocumentDB では、一部の関数で名前付き引数が必要です。 名前付き引数を使用するには、名前付きパラメーターに PostgreSQL 風の構文(例: => または := )を使用してください。 パラメーター化された関数に名前を指定しないとエラーが発生します。 dateToString 関数の例を以下に示します。

SELECT dateToString(date => ISODate(), format := '%H:%M:%S:%L%z', timezone => 'Europe/London') AS 'Date' FROM companies;

docs.mongodb.com の集約パイプラインオペレーター(英語)で名前付きパラメーターをサポートするすべてのパイプライン演算子のリストを確認できます。

制限

  • SQL と MongoDB および Amazon DocumentDB では集計関数に対するアプローチが異なるため、AVG、SUM、MIN、MAX などの集計関数を非集計として使用することはできません。 例: SELECT MAX(1,2,3) は機能しません。

    MongoDB と Amazon DocumentDB では、 AVGSUMMINMAX などの関数は集計・非集計の両方として扱われる場合があります。 グループ ブロックに配置されている場合は集計です。 それ以外の場合、非集計となります。

    SQL では、そのような依存関係はなく、GROUP BY 句なしで集計関数を使用できます(たとえば、 SELECT AVG(x) FROM t)。

  • 他の集計関数内で集計関数を呼び出すことはできません。

演算子

現在、次の機能がサポートされています。

  • オペランド: ===>=<=戻り値のラップダイアログ<<>!=+-/*%ANDORNOTLIKENOT LIKEISIS NOTINNOT INBETWEENNOT BETWEEN

  • LIKE 演算子にはワイルドカードを使用できます。 これらのワイルドカードは、MongoDB または Amazon DocumentDB で有効な正規表現に変換されます。

    LIKE 演算子のワイルドカード
    LIKE 演算子のワイルドカード

SQL 句

SELECT

SELECT クエリでは次の機能がサポートされています。

  • オプション: DISTINCTALL

  • 集計関数と非集計関数。

  • 点線の名前を使用した埋め込みフィールドへのアクセス。 次の例を考えてみましょう。

    埋め込みフィールド
    埋め込みフィールド

制限

  • 列にはエイリアスが含まれる場合があります。 エイリアスにピリオド( )を含めることはできません。

FROM

  • テーブルにはエイリアスを使用できます。

  • ネストされた SELECT ステートメントにはエイリアスを使用する必要があります。

  • ネストされた SELECT クエリを使用できます。 例: 次のクエリは有効です。

    ネストされた SELECT クエリ
    ネストされた SELECT クエリ

制限

  • エイリアスにピリオド( )を含めることはできません。

JOIN

  • JOIN (INNER JOIN) と LEFT JOIN (LEFT OUTER JOIN) のみがサポートされます。

  • オン 条件のみがサポートされます。

  • オン 部分には条件が 1 つだけあります。 次のクエリはエラーになります。

    ON 部分には条件が 1 つだけ
    ON 部分には条件が 1 つだけ
  • オン 条件では、 == または = 演算子を使用できます。

  • 複数の JOIN 句がサポートされています。

制限

  • USING はサポートされていません。

  • SELECT ステートメントを JOIN 句の 2 番目の引数として使用することはできません。

  • JOIN 句では、テーブル名とエイリアスが重複してはなりません。

WHERE

  • LIKE および NOT LIKE には文字列リテラルが必要です。 次のクエリはエラーになります。

    LIKE および NOTLIKE には文字列リテラルが必要です
    LIKE および NOTLIKE には文字列リテラルが必要です

GROUP BY

IntelliJ IDEA は GROUP BY 句をサポートします。

SELECT 句には、 GROUP BY 句の式に機能的に依存する式を含めることができます。 列が GROUP BY 句で使用されている場合は、 SELECT 句で列の埋め込みフィールドを使用できます。

GROUP BY
GROUP BY

HAVING

IntelliJ IDEA は HAVING 句をサポートします。

HAVING
HAVING

ORDER BY

IntelliJ IDEA は ORDER BY 句をサポートします。 ORDER BY の代わりに SORT BY を使用できます。

ORDER BY
ORDER BY

LIMIT

IntelliJ IDEA は LIMIT 句をサポートします。

LIMIT
LIMIT

OFFSET

IntelliJ IDEA は OFFSET 句をサポートします。

OFFSET
OFFSET
2026 年 3 月 30 日