Docs Menu
Docs Home
/
MongoDB Compass
/

データスキーマの分析

項目一覧

  • クエリ バー
  • フィールドの説明
  • クエリ ビルダ
  • ロケーション データの分析
  • トラブルシューティング

Schema タブには、特定のコレクション内のフィールドのデータ型と形状の概要が表示されます。データベースとコレクションは左側のナビゲーションに表示されます。

概要は、コレクション内のドキュメントをサンプリングしたに基づいています。 スキーマの概要には、日付や整数の最小値と最大値、特定の値の発生頻度、データのカーディナリティなど、フィールドの内容に関する追加データが含まれる場合があります。

MongoDB には 柔軟なスキーマ モデルがあり、一部のフィールドにはドキュメントごとに異なる型のデータが含まれる場合があります。例として、 address という名前のフィールドには、一部のドキュメントでは文字列と整数、他のドキュメントではオブジェクト、またはこれら 3 つすべての組み合わせが含まれる場合があります。

異種フィールドの場合、Schema タブには、フィールド内に含まれるさまざまなデータ型の内訳と、各データ型の割合が表示されます。

Schema タブの上部には、コレクション内のドキュメントの合計数、ドキュメントの平均サイズ、コレクションが占有するディスク容量の合計など、test.restaurants コレクションのサイズ情報が表示されます。

次のフィールドに詳細が表示されます。

  • _id フィールドは ObjectId です。各 ObjectId にはタイムスタンプが含まれているため、Compass にはサンプリングされたドキュメントの作成時間の範囲が表示されます。

  • address フィールドには 4 つのネストされたフィールドが含まれています。フィールド パネルを展開すると、ネストされた各フィールドの分析が表示されます。

  • borough フィールドには、レストランが位置する地区を示す文字列が含まれています。濃度は十分に低いので、Compass ではフィールドの内容を段階的に示し、最も頻繁に出現する文字列を左に表示できます。

  • categories フィールドには、文字列の配列が含まれています。分析は、アレイの長さの最小値、最大値、平均値を示しています。

コレクションのスキーマの例
クリックして拡大します

Schema タブの クエリ バー を使用すると、クエリフィルターを作成して結果セットを制限できます。Options ボタンをクリックして、表示する特定のフィールドや返される結果の数などのクエリ オプションを指定します。

注意

クエリ結果セットが 1000 ドキュメントを超える場合、Compass では結果のサブセットが表示されます。それ以外の場合、Compass では結果セット全体が表示されます。

サンプリングの詳細についてはサンプリングを参照してください。

クエリ バーのスキーマ ビュー
クリックして拡大します

Tip

Schema タブでは、クエリ ビルダを使用してクエリ バーにクエリを入力することもできます。

各フィールドについて、Compass は、フィールドに含まれるデータ型と値の範囲に関する概要情報を表示します。データの種類とカーディナリティのレベルに応じて、Compass はヒストグラム、段階的なバー、地図、サンプル データを表示し、各フィールドに含まれるデータの形状と範囲を把握できるようにします。

以下は、date 型のデータを含む last_login というフィールドのデータ型の概要の例です。

単一のデータ型を持つフィールドの例

複数のデータ型を含むフィールドの場合、Compass はドキュメント全体のさまざまなデータ型の割合の内訳を表示します。以下の例では、チャートには phone_no というフィールドの内容が表示されており、ドキュメントの 81% が string 型で、残りの 19% が number 型です。

データ型の割合の内訳の例

コレクションに、すべてのフィールドに値が含まれていないドキュメントが含まれている場合、欠落している値は undefined として表示されます。以下の例では、サンプル文書の 40% で age フィールドに値が記録されていません。

sparcely 適用データ型の例

文字列は 3 つの異なる方法で表示されます。フィールドに完全にユニークな文字列がある場合、Compass は指定されたフィールドからランダムに選択された文字列値を表示します。円形の更新アイコンをクリックすると、フィールドからランダムに選択された新しい値のセットが表示されます。

文字列データ型の例

異なる文字列値が少ない場合、Compass は文字列値を 1 つのグラデーション バーに表示し、文字列値の母集団の割合を示します。

いくつかの文字列データ型の例

重複する文字列値が複数ある場合、Compass はフィールド内で見つかった各 文字列の頻度を示すヒストグラムを表示します。

ヒストグラムとしての文字列データ型の例

注意

各バーの上にマウスを移動させると、文字列値を示すツールチップが表示される。

数値の表現方法は文字列に似ています。ユニークな番号は、次のように表示されます。

数値データ型の例

重複番号は、その頻度を示すヒストグラムで表示されます。

重複する数値データ型の例
クリックして拡大します

日付を表すフィールド(およびタイムスタンプを含む ObjectID データ型を含むフィールド)は、複数の棒グラフに表示されます。上段の 2 つのチャートは、タイムスタンプ値の曜日と時間帯を表している。

下部の単一のグラフには、最初と最後のタイムスタンプの値が表示されます。また、垂直線は最初から最後までの範囲にわたるタイムスタンプの分布を表しています。

日付データ型の例

サブドキュメントまたは配列を含むフィールドには、その横に小さな三角形が表示され、サブドキュメントまたは配列内に含まれるデータが視覚的に表現されます。

埋め込まれたドキュメントまたは配列を持つフィールドの例

三角形をクリックするとフィールドが展開され、埋め込まれたドキュメントが表示されます。

埋め込みドキュメントの展開

GeoJSON データまたは [longitude,latitude] 配列を含むフィールドは、インタラクティブ マップとともに表示されます。Compass でのロケーション データのやりとりについて詳細は、「ロケーション データの分析」を参照してください。

GeoJSON データ型の例
クリックして拡大します

注意

サードパーティのマッピング サービスは Compass Isolated Edition では利用できません。

フィールドに型が混在している場合は、type フィールドをクリックすると、各型の異なるグラフを表示できます。以下の例では、age フィールドに文字列値が表示されます。

型が混在するフィールドの例

number 型をクリックすると、グラフに数値データが表示されます。

数値型の数値データを表示する例

Schema タブでは、クエリ バーにフィルターを手動で入力するか、Compass クエリ ビルダを使用してフィルターを生成できます。クエリ ビルダを使用すると、スキーマ内の 1 つ以上のフィールドからデータ要素を選択し、選択した要素に一致するクエリを作成できます。

Tip

クリック可能なクエリ ビルダを使用して最初のクエリフィルターを作成し、生成されたフィルターを正確な要件に合わせて手動で編集できます。

次の手順では、クエリ バーを使用して複雑なクエリを作成する手順について説明します。

1

Schema ビューでは、グラフの値をクリックしてクエリを作成できます。たとえば、次の画像は、departureAirportFsCode フィールドの EWR 値をクリックして構築されたクエリフィルターを示しています。

作成されたフィルターの例
2

フィールドに複数の値を選択するには、値の選択範囲をクリックしてカーソルをドラッグするか、Shift キーを押しながら目的の値をクリックします。

フィールドに複数の値を選択する例
3

たとえば、次の画像は、flightId フィールドの値を選択して構築された複合クエリを示しています。

複合クエリの例
4

以前に選択した値の選択を解除するには、選択した値を Shift キーを押しながらクリックします。

フィルターから値を削除する例
5

クエリを実行するには、[ Analyze] をクリックします。[Reset] をクリックしてクエリをクリアします。

Schema タブでは、インタラクティブ マップを使用してロケーション データをフィルタリングおよび分析できます。フィールドに GeoJSON データまたは [longitude,latitude] 配列が含まれている場合、Schema タブにはフィールドの点を含むマップが表示されます。ロケーション フィールドのデータ型は coordinates です。

位置データを含むフィールドの例を示す画像
クリックして拡大します

マップにフィルターを適用して、特定の範囲のポイントのみを分析できます。ロケーション フィルターを定義するには、次の手順に従います。

  1. 地図の右上にある [Circle] ボタンをクリックします。

  2. マップをクリックしてドラッグし、分析するマップの領域を含む円を描きます。

  3. 必要に応じてこのプロセスを繰り返し、スキーマ分析にマップの追加領域を含めます。

フィルター円が描かれたマップの画像
クリックして拡大します

ロケーション フィルターを描画するとクエリ バーがアップデートされ、スキーマ分析に適用された $geoWithin クエリで使用される正確な座標が表示されます。

複数のロケーション フィルターを指定すると、クエリは複数の $geoWithin 演算子を含む $or クエリになります。

ロケーション フィルターを移動またはサイズを変更するには、地図の右側にある をクリックします。次のように表示されるフィルター編集モードにします。

マップ フィルターの編集を示す画像
クリックして拡大します
フィルターを移動するには、次の手順に従います。
円の中心にある四角形をクリックしてドラッグします。
フィルターのサイズを変更するには、次の手順に従います。
円の端にある正方形をクリックしてドラッグします。

フィルターを変更したら、[Save] をクリックします。

マップからロケーション フィルターを削除するには、次の手順に従います。

  1. 地図の右側にある をクリックします。

  2. 次のいずれかをクリックします。

    • そのフィルターを削除するロケーション フィルター。

    • Clear All (すべてのロケーション フィルターを解除する場合)。

  3. [Save] をクリックします。

スキーマの分析がタイムアウトする場合は、分析対象のコレクションが非常に大きいために、分析が完了する前に MongoDB が操作を停止している可能性があります。操作時間が完了するまで、MAX TIME MS の値を増やしてください。

MAX TIME MSの値を増やすには、次の手順に従います。

  1. クエリバーで、Options を展開します。

    [オプション] ボタンは、クエリ バーの右側、[分析] ボタンの横にあります。
  2. コレクションに合わせて MAX TIME MS の値を増やします。MAX TIME MS のデフォルトは 60000 ミリ秒、つまり 60 秒ですが、大規模なコレクションの分析には数十秒かかる場合があります。

MAX TIME MS の値を増やしたら、[Analyze] をクリックしてスキーマ分析を再試行します。

戻る

Atlas Vector Search インデックス