Docs Menu
Docs Home
/
Atlas Charts
/ /

ルックアップフィールドを追加する

項目一覧

  • 新しいルックアップフィールドを作成する

ルックアップ フィールドを使用すると、同じデータベース内の複数のコレクションのデータを結合するチャートを作成できます。 ルックアップ フィールドは、チャートのメイン データソースのフィールドに対応する値を持つドキュメントを 2 番目のコレクションから取得します。

ルックアップ フィールドは、コレクション間の親と子、プライマリキー、外部キーの関係を活用したり、あるコレクション内のフィールドが別のコレクションのフィールドを参照したりする状況に役立ちます。 ルックアップ フィールドは $lookupを使用して、リモート コレクションから一致するドキュメントを検索します。

埋め込みオブジェクトではなく、別のコレクションのフィールドと一致するデータを含む、チャートのデータソース内の任意のフィールドからルックアップ フィールドを作成できます。 リモート コレクションは、次の条件を満たす必要があります。

  • 既存の Charts データソース。

  • ローカル コレクションと同じデータベースの一部。

注意

また、ローカル コレクションをルックアップ フィールド ソースとして使用することもできます。

ルックアップ フィールドを追加するには、既存のフィールドにカーソルを合わせ、フィールド名の右側にある ellipsis (...)をクリックします。 ドロップダウン メニューからLookup fieldを選択します。 次のモーダル ウィンドウが表示されます。

ルックアップ フィールド モーダル ウィンドウ
クリックして拡大します

ドロップダウン メニューから目的のコレクションとフィールドを選択します。 リモート フィールドには、ローカル フィールドと一致するデータを含むドキュメントが少なくとも 1 つ含まれている必要があります。そうでない場合、ルックアップ フィールドは空になります。

外部コレクションから一致するすべてのドキュメントを返すか、最初に一致するドキュメントのみを返すオプションがあります。 一致するすべてのドキュメントを返すことは、親と子やプライマリキーの関係など、1 対多の関係に推奨されます。 参照データ コードなどの 1 対 1 または多対 1 の関係には、最初のドキュメントのみを返すことをお勧めします。 一致する最初のドキュメントのみを返す場合は、 Return only first matching documentラジオボタンを確認します。

Charts では新しいフィールドの名前が提案されますが、必要に応じて任意の名前を入力できます。 新しいフィールドを作成するには、 Saveをクリックします。

新しいフィールドにはbinocularsアイコンが表示されます。これは、ルックアップ フィールドであることを示します。

重要

ルックアップ フィールドとして使用するすべてのフィールドが 適切にインデックス付けされていること を確認してください。 大規模なコレクション内のインデックスのないフィールドで検索操作を実行すると、パフォーマンス上の重大な問題やタイムアウトが発生する恐れがあります。

フィールド パネルからルックアップ フィールドを削除するには、ルックアップ フィールドにカーソルを合わせ、フィールド名の右側にある [ ellipsis (...) ] をクリックします。 ドロップダウン メニューからRemove fieldを選択します。

次の例では、2 つのデータソースを使用しています。1 つは product_catalogと呼ばれ、もう 1 つはordersと呼ばれます。

product_catalog コレクションには次のドキュメントが含まれます。

{ "_id" : 76234, "item" : "21 inch monitor" }
{ "_id" : 38921, "item" : "USB C cable" }
{ "_id" : 21167, "item" : "keyboard" }
{ "_id" : 90252, "item" : "60 GB external hard drive" }

orders コレクションには次のドキュメントが含まれます。

{ "_id" : 1, "sku": 38921, "quantity": 50 }
{ "_id" : 2, "sku": 21167, "quantity": 75 }
{ "_id" : 3, "sku": 76234, "quantity": 15 }
{ "_id" : 4, "sku": 21167, "quantity": 20 }

ordersコレクション内のレコードはskuフィールドを使用してproduct_catalogコレクション内の_idフィールドを参照します。

目的は、注文された商品数を示す縦棒チャートを作成することです。 次のグラフでは、データソースとしてordersを使用しています。 ルックアップ フィールドsku_lookup_product_catalogorders.skuフィールドから作成されます。 product_catalogリモート データソースとして コレクションを使用し、リモートproduct_catalog._id フィールドとして コレクションを使用します。

グラフでは、X 軸としてproduct_catalog.itemを使用し、Y 軸としてorders.quantityを使用します。

ルックアップ フィールドの例チャート
クリックして拡大します

戻る

フィールド データ型の変換