フィルターは、指定された条件に一致する結果のサブセットを表示します。 Atlas Charts では、単一のグラフのデータをフィルタリングする 2 つの方法が提供されています。 次のいずれかを使用できます。
[ フィルター タブの数値、string、日付、またはブール値フィールドは、データフィルタリング ニーズのほとんどを処理します。
論理演算子クエリなどのより複雑なクエリを使用してデータをフィルタリングするか、 集計パイプラインを使用して未加工データを処理するには、クエリ バーを使用します。
ダッシュボード上の複数のグラフで結果をフィルタリングする方法については、「 フィールド値でダッシュボードをフィルタリング 」を参照してください。
データのフィルターの作成
チャートビルダには、フィールドをドラッグして削除してデータのフィルターを指定できるフィルタータブが含まれています。 フィルター タブを使用してデータをフィルタリングするには、次の手順に従います。
チャートビルダの中央タブをクリックします。
![フィルター タブにアクセスする方法を示す画像]()
左側の Fieldsからフィールドを タブのChart Filtersセクションにドラッグします。
選択したフィールドのデータ型、使用可能なフィルタリング オプションが決まります。使用可能なフィルター オプションを表示するには、フィールドタイプと、該当する場合は日付フィルタータイプを選択します。
注意
複数のフィルターで同じフィールドを使用することはできません。
フィルターを有効または無効にする
Filterタブでフィルターを有効または無効にするかを切り替えることができます。 フィルターを無効にしても、チャートに表示されるドキュメントには影響しません。 無効にされたフィルターはグレー表示され、有効になるまで編集することはできません。
フィルターが有効かどうかを切り替えるには、フィルターにカーソルを合わせ、フィルターの上部に表示されるトグルを 設定に設定します。

フィルターを展開または折りたたむ
チャートフィルター カードで [ ShowまたはHideをクリックすると、チャートフィルター カードを展開または折りたたむことができます。
無効にされたフィルターは自動的に折りたたまれます。
有効になっていても、折りたたまれたフィルターは引き続きチャートに適用されます。
クエリ バーを使用したデータのフィルタリング
チャート表示の上のQueryバーは、フィルター パネルよりも複雑なクエリをサポートしています。 さらに、クエリ バーを使用して、データがレンダリングされる前に処理するための集計パイプラインを作成することもできます。
Queryバーを使用してデータをフィルタリングするには:
Queryバーに、フィルター ドキュメントを入力します。 db.collection.find()のクエリ部分で使用されるのと同じ構文を使用します。 使用して複数のドキュメントを挿入できます。 フィルター ドキュメントは中括弧で囲む必要があります。
[Apply] をクリックします。
次の例は、さまざまな演算子を使用してクエリを作成する方法を示しています。例を展開してクエリを表示します。
次のグラフは、ドキュメントまたはアクション映画のいずれかを作成した監督の数における上位 5 国( Limit Results X Axis有効になり、5 に設定されている)を示しています。

このチャートでは、次のクエリを使用します。
{ $or: [ { genres: "Documentary" }, { genres: "Biography" } ] }
genres は、各要素が映画のジャンルである配列です。 このフィルターにより、特定の国の監督の総数にドキュメントまたはアクション映画のいずれかを作成した監督のみが含まれるようになります。
次のチャートは、 5年ごとの映画の平均メタファー評価を示しています。

このチャートでは、次のクエリを使用します。
{ 'writers.1': { $exists: true }}
writers は、各要素が映画に貢献したライターである配列です。 このフィルターで、2 番目の配列要素が存在することを確認して、少なくとも 2 人の書込み (write) を持つドキュメントのみが平均メタクリティカル評価に考慮されるようにします。
正規表現を使用してフィルタリングするには、 $regexクエリ演算子を使用します。
{ <field>: { $regex: "pattern", $options: "<options>" } }
たとえば、 jobsフィールドが文字Aで始まるすべてのドキュメントを検索するには、 Queryバーに次の内容を書き込みます。
{ "jobs" : { $regex : "^A" } }
jobsフィールドが文字Aまたはaで始まるすべてのドキュメントを検索するには、 Queryバーに次の内容を書き込みます。
{ "jobs" : { $regex : "^A", $options : "i" } }
次のチャートは、事務用品会社の合計売上額を購入方法別に分類したものです。

このチャートでは、次のクエリを使用します。
{ $and: [ { saleDate: { $gte: new Date("2017-01-01") } }, { 'items.4': { $exists: true } } ] }
コレクション内の各ドキュメントは 1 つの販売を表します。 itemsは、各要素が販売中に購入された商品である配列です。
このクエリは、 saleDateがJanuary 1, 2017以降で、 items配列内に少なくとも5要素があるドキュメントのみに表示されるドキュメントを制限します。
クエリエラーへの対処
クエリが無効な場合、Charts はQueryバーの アイコン。
エラーの詳細を表示するには、まだ表示されていない場合はQueryバーをクリックします。 Charts には、次のエラーの詳細が表示されます。
不正な JSON などのクライアント側のエラーや
無効な MQLなど、サーバー側のエラー。

エラーの詳細を確認し、それに応じてクエリを調整します。
Considerations
コレクションに適切にインデックスが付けられていない場合、大きなコレクションのフィルターではパフォーマンスの問題が発生する可能性があります。
Atlas Charts クエリバーで使用される日付関数は、
mongoshで使用される日付関数とコンシステントで互換性があります。その結果、以下を使用できます。new Date(),ISODate()または、new ISODate().
Date()関数(new Date()コンストラクターではない)は現在の日付を string として返すため、Charts の日付のクエリには使用できません。
