MongoDB for IntelliJ プラグインは、指定されたデータベース、コレクション、またはフィールドがサーバーに存在することを確認するために、 Javaドライバーまたはspring Criteria コード内のデータベース参照を検証します。
データソースにないフィールド、コレクション、またはデータベース名を参照と、プラグインは参照が存在しないことを示す警告を表示します。
警告を解決するには、以下の手順を行います。
接続ツールバーで正しいデータソースに接続していることを確認します。
コード内で正しいデータベースとコレクションを参照していることを確認してください。
データベースまたはコレクションに参照しようとするフィールドが含まれていることを確認します。
存在しないフィールド名
コレクションに存在しないフィールド名を参照と、IntelliJ プラグインは Correctness Warnings の下のサイド パネルに次の警告を表示します。
Field <fieldName> does not seem to exist in collection.
存在しないコレクション名
データベースに存在しないコレクション名を参照場合、IntelliJ プラグインは Environment Mismatch Warnings の下のサイド パネルに次の警告を表示します。
Cannot resolve <collectionName> collection in <dbName> database in the connected data source.
警告を解決するには、参照先のコレクションがデータベースに存在することを確認します。または、サイド パネルで Choose a connection をクリックすると、参照先のコレクションを含む別のデータソースを選択できます。
Non-existent Database Name
データソースに存在しないデータベースを参照場合、IntelliJ プラグインは Environment Mismatch Warnings の下のサイド パネルに次の警告を表示します。
Cannot resolve <dbName> database reference in the connected data source.
警告を解決するには、参照先のデータベースが配置内に存在することを確認します。または、サイド パネルで Choose a connection をクリックして、参照先のデータベースを含む別のデータソースを選択することもできます。
例
次の例では、映画と映画館に関するデータを含むsample_mflix
データベースを Atlasサンプルデータセットから参照します。
サンプルコードでは、restaurant_name
コレクションの呼び出しが試行されます。
public List<Document> getHundredYearOldMovies() { return client.getDatabase("sample_mflix") .getCollection("restaurant_name") .find(Filters.eq("year", 1924)) .into(new ArrayList<>()); }
コレクションがsample_mflix
データベースに存在しないため、IntelliJ プラグインはコレクションを解決できないという警告を発します。
Cannot resolve "restaurant_name" collection in "sample_mflix" database in the connected data source.``
警告を解決するには、sample_mflix
データベースに存在するコレクションを参照。
public List<Document> getHundredYearOldMovies() { return client.getDatabase("sample_mflix") .getCollection("movies") .find(Filters.eq("year", 1924)) .into(new ArrayList<>()); }