```mdx
---
title: "リストオペレーター"
description: "配列から要素をフィルタリング、並べ替え、選択する"
icon: "filter"
---

リストオペレーターノードは、配列をフィルタリング、並べ替え、特定の要素を選択することで処理します。混合ファイルのアップロード、大規模なデータセット、または下流処理の前に分離や整理が必要な配列データを扱う必要がある場合に使用します。

<Frame caption="リストオペレーターノードインターフェース">
  <img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/522a0c932aab93d4f3970168412f759e.png" alt="リストオペレーターインターフェース" />
</Frame>

## 配列処理の問題

ほとんどの工作流ノードは、配列ではなく単一の値を期待します。変数に `[image.png, document.pdf, audio.mp3]` のような混合コンテンツがある場合、これを下流ノードが効果的に処理できるようにフォーカスされたストリームに分離する必要があります。

リストオペレーターは、フィルターを使用して混合配列を分離し、専門的な処理の準備をするインテリジェントなルーターとして機能します。

<Frame caption="配列処理ワークフローの例">
  <img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/812d1b2f167065e17df8392b2cb3cc8a.png" alt="配列処理の例" />
</Frame>

## サポートされているデータタイプ

ノードは異なる配列タイプを適切なフィルタリングオプションで処理します：

**Array[string]** - テキストリスト、カテゴリ、名前、または任意の文字列コレクション

**Array[number]** - 数値データ、スコア、測定値、または計算  

**Array[file]** - 豊富なメタデータフィルタリング機能を備えた混合ファイルアップロード

## 操作

### フィルタリング

属性に基づいて特定のアイテムを抽出します。ファイル配列の場合、以下でフィルタリング：

<Tabs>
  <Tab title="コンテンツプロパティ">
    **Type** - コンテンツカテゴリでフィルター：画像、ドキュメント、音声、ビデオ
    
    **MIME Type** - 正確なコンテンツタイプの識別（image/jpeg、application/pdf など）
    
    **Extension** - ファイル拡張子（.pdf、.jpg、.mp3、.docx など）
  </Tab>
  
  <Tab title="ファイルプロパティ">
    **Size** - 処理制限のためのファイルサイズ制約
    
    **Name** - ファイル名のパターンまたは特定の名前
    
    **Transfer Method** - ローカルアップロードとURLベースのファイルを区別
  </Tab>
</Tabs>

### 並べ替え

フィルタリングされた結果を任意の属性で整理：

**Ascending (ASC)** - 最小から最大の値、A-Z のアルファベット順

**Descending (DESC)** - 最大から最小の値、Z-A の逆順

### 選択

処理された配列から特定の要素を選択：

**Take First N** - フィルタリングと並べ替え後の最初の1-20アイテムを選択

**First Record** - 最初の一致する要素のみを単一の値として返す

**Last Record** - 最後の一致する要素のみを単一の値として返す

## 出力変数

**result** - バルク処理用の完全にフィルタリングおよび並べ替えられた配列

**first_record** - 始めからの単一要素、"主要"または"最新"アイテムの選択に最適

**last_record** - 終わりからの単一要素、"最も最近"または"最終"選択に便利

## 混合ファイル処理の例

ユーザーがドキュメントと画像の両方をアップロードするワークフローを処理：

<Frame caption="混合ファイル処理ワークフロー">
  <img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/610358293217e54b55b7e1d4d16bf83c.png" alt="混合ファイル処理の例" />
</Frame>

**実装手順：**

1. **混合アップロードの設定** - 複数のファイルタイプを受け入れるファイルアップロード機能を有効にする
2. **タイプ別に分割** - 異なるフィルターを持つ別々のリストオペレーターノードを使用：
   - `type = "image"` のフィルター → ビジョン能力を持つ LLM にルート
   - `type = "document"` のフィルター → ドキュメントエクストラクターにルート
3. **適切に処理** - 画像は直接分析され、ドキュメントはテキスト抽出される
4. **結果を統合** - 処理された出力を統合された応答にマージ

このパターンは、異なるファイルタイプを適切なプロセッサに自動的にルーティングし、シームレスなマルチモーダルユーザーエクスペリエンスを作成します。

## 一般的なユースケース

**ファイルタイプルーティング** - コンテンツタイプに基づいて混合アップロードを専門的な処理パイプラインに分離。

**データフィルタリング** - 特定の基準に基づいて大規模データセットから関連する部分集合を抽出。

**コンテンツの優先順位付け** - コレクションから最も重要または最近のアイテムを並べ替え選択。

**品質管理** - 処理前に無効な、過大な、またはサポートされていないコンテンツをフィルタリング。

**バッチ準備** - 下流の反復または並行処理のためにデータを管理可能なチャンクに整理。

## ベストプラクティス

**フィルター基準を計画** - 下流処理要件に基づいて明確なフィルタリングルールを定義。

**適切な出力タイプを使用** - データをどのように使用するかに基づいて、完全な配列、最初のレコード、または最後のレコードを選択。

**空の結果を処理** - フィルターが一致しない場合の対応を考慮し、適切なフォールバックロジックを計画。

**実際のデータでテスト** - 本番環境での信頼性を確保するために、実際のユーザーアップロードでフィルタリング動作を検証。
```