# リストをフィルター

> 特定の語を含むフィールドや、前回の実行以降の日付など、条件に一致するリストの項目だけを残します。複数のルールは AND または OR で組み合わせます。

Source: https://nodaro.ai/ja/docs/nodes/automate/filter-list

**リストをフィルター**（Filter List）ノードは、リストの項目のうち、条件に一致するものだけを残します。各条件は、すべての項目の 1 つのフィールドを調べます。たとえば、`likes` が `1000` より大きい、`caption` が `sale` を含む、といった条件です。複数の条件は、AND または OR で組み合わせます。スクレイピングや生成で得たリストを、残った各項目が次のノードで実行される前に絞り込むのに使います。このノードは無料です。

- Found in: Automate › Lists & Batching
- Output: data
- API type: `filter-list`

## 使いどころ
- スクレイピングした投稿を書き直す前に、いいねが十分に多い投稿だけを残します。
- 前回のスケジュール実行以降に公開されたフィードの項目だけを残します。
- 動画のない投稿など、フィールドが欠けている項目を取り除きます。
- 有料のノードで実行する前に、バッチを小さくして費用を抑えます。

## クイックスタート
### ノードを追加する
キャンバス上で Tab を押し、**自動化 › リストとバッチ処理 › リストをフィルター**を選びます。

### リストを接続する
**リスト**入力にリストを接続します。たとえば、[**Web スクレイピング**（Web Scrape）](https://nodaro.ai/docs/nodes/automate/web-scrape)、[**リスト**（List）](https://nodaro.ai/docs/nodes/automate/list)、[**テキストを分割**（Split Text）](https://nodaro.ai/docs/nodes/automate/split-text)からのリストです。上流のノードに結果ができると、設定パネルの**上流のサンプル（最初の項目）**に最初の項目が表示されます。

### 条件を追加する
**条件を追加**をクリックします。フィールド、演算子、値を選びます。さらに条件を追加し、**AND** または **OR** を選んで組み合わせます。

### 実行する
**フィルター済み**出力には、条件を満たした項目だけが入ります。残った項目ごとに次のノードを 1 回ずつ実行するには、その接続を**個別**にします。

Workflow: リストをフィルターが人気の投稿を残し、フィールドを抽出がそのキャプションを取り出し、プロンプトが各キャプションを書き直します。

- Instagram → リストをフィルター (リスト)
- リストをフィルター → フィールドを抽出 (ソース)
- フィールドを抽出 → プロンプト (プロンプト · 個別)

## 入力と出力
| 入力／出力 | 受け取るもの／送るもの | 説明 |
| --- | --- | --- |
| **リスト** | テキストまたは JSON の項目のリスト | フィルターするリストです。条件でフィールドを指定すると、各項目は JSON として読み取られます。 |
| **フィルター済み** | リスト | 条件を満たした項目です。元の順番のまま並びます。 |

## 設定
| 設定 | 説明 |
| --- | --- |
| **条件** | テストごとに 1 行です。各行は、フィールド、演算子、値からなります。条件がない場合は、すべての項目が通過します。 |
| **AND** または **OR** | **AND** は、すべての条件を満たす項目を残します。**OR** は、少なくとも 1 つの条件を満たす項目を残します。デフォルトは **AND** です。 |
| **大文字と小文字を区別してテキストを照合** | デフォルトはオンなので、`Sale` と `sale` は別のものとして扱われます。チェックを外すと、大文字と小文字が区別されなくなります。 |
| **上流のサンプル（最初の項目）** | 最初に届く項目のプレビューで、その項目のフィールドを確認できます。条件で使っているフィールドは、区別して表示されます。 |

### 各条件
- **フィールド**：上流のデータから検出されたフィールドを選びます。項目全体を調べるには**（項目全体）**を、`author.name` のようなドットパスを入力するには**カスタムパス…**を選びます。**← フィールド一覧に戻る**で、検出されたフィールドに戻ります。
- **演算子**：**等しい**、**等しくない**、**より大きい**、**より小さい**、**以上**、**以下**、**含む**、**含まない**、**で始まる**、**で終わる**、**正規表現に一致**、**存在する**、**存在しない**のいずれかです。**存在する**と**存在しない**には、値は必要ありません。
- **値**：比較する値です。横にある切り替えボタンで、自分で入力する値と変数を切り替えます。

## 日付でフィルターする
`created_at`、`published_at`、`timestamp`、`date` のほか、名前が `_at` や `Date` で終わるフィールドなど、日付や時刻を持つフィールドがあります。条件でこうしたフィールドを**より大きい**、**より小さい**、**以上**、**以下**と組み合わせると、値の欄が日付の選択に変わります。

| 選択肢 | 比較の対象 |
| --- | --- |
| **前回の実行以降** | ワークフローのトリガーが最後に作動した時刻です。トリガーやスケジュールで開始した実行でのみ機能します。手動で実行した場合は、空として扱われます。 |
| **過去 N 時間** | 現在から N 時間前の時刻です。 |
| **過去 N 日間** | 現在から N 日前の時刻です。 |
| **過去 N 週間** | 現在から N 週間前の時刻です。 |
| **カスタム…** | 入力した任意の日付です。 |

たとえば、`published_at` を**より大きい**と**過去 N 日間**で比較し、N を 1 にすると、過去 1 日の間に公開された項目が残ります。

それ以外のフィールドには、入力した値か、次のいずれかの変数を使えます。

- `{{now}}`：現在の時刻です。
- `{{trigger.last_triggered_at}}`：ワークフローのトリガーが最後に作動した時刻です。
- `{{last_N_hours:3}}`、`{{last_N_days:1}}`、`{{last_N_weeks:2}}`：現在からさかのぼる時間の範囲です。数値を変えると、範囲が変わります。

## クレジット
リストをフィルターは無料です。

## ヒント
- **バッチの前にフィルターする**：取り除いた項目 1 つにつき、次のノードの実行が 1 回分減り、その分を支払わずに済みます。
- **新しい項目だけを処理する**：[**スケジュールトリガー**（Schedule Trigger）](https://nodaro.ai/docs/nodes/automate/schedule-trigger)と**前回の実行以降**の条件を組み合わせると、各実行は前回の実行以降に届いたものだけを処理します。
- **先にサンプルを見る**：条件には、**上流のサンプル（最初の項目）**に表示されるフィールド名を使う必要があります。
- **フィルターではなく選ぶ**：位置で 1 つの項目や一部分を取り出すには、[**セレクター**（Selector）](https://nodaro.ai/docs/nodes/automate/selector)を使います。リストを並べ替えるには、[**リストを並べ替え**（Sort List）](https://nodaro.ai/docs/nodes/automate/sort-list)を使います。

## Frequently asked questions

### Nodaro で、リストの一部の項目だけを残すにはどうすればよいですか？

リストの後に「リストをフィルター」ノードを追加し、ルールごとに条件を 1 つずつ設定します。たとえば、フィールドが特定の語を含むか、数値がしきい値より大きいかを調べます。「フィルター済み」出力には、条件を満たした項目だけが入ります。

### リストをフィルターで、前回の実行以降に追加された項目だけを残せますか？

はい。published_at などの日付のフィールド、演算子「より大きい」、値「前回の実行以降」を選びます。これは、トリガーやスケジュールで開始した実行で機能します。手動で実行した場合、「前回の実行以降」は空として扱われます。

### リストをフィルターにクレジットはかかりますか？

いいえ。リストをフィルターは無料です。バッチの前にリストをフィルターすると、クレジットの節約にもなります。取り除いた項目 1 つにつき、次のノードの実行が 1 回分減り、その分を支払わずに済むからです。

### AND と OR の違いは何ですか？

AND は、すべての条件を満たす項目だけを残します。OR は、少なくとも 1 つの条件を満たす項目を残します。デフォルトは AND です。
