n8n Loop Over Items 節點(15):把多筆資料分批處理,保證每筆都跑到位

有些節點天生只吃單一 item(或你想分批打 API 以避免限流),這時就交給 Loop Over Items

它會保存原始輸入,每回合從清單裡吐出 Batch Size 指定數量到 loop 輸出,等全部處理完,再把結果合併後從 done 輸出一次丟回主線。
典型用途:

  • 下游節點只處理第一筆 → 以 Batch Size=1 逐筆餵。
  • 需要「直到清單處理完」的流程控制。
  • 分批呼叫外部服務,降低速率限制風險。

核心設定很單純:

  • Batch Size:每回合要送出的筆數。
  • Reset:開啟後每次循環會以當前輸入重新初始化(用於動態更新來源清單)。
    再加上兩個好用的狀態表達式
  • 是否處理完:{{$node["Loop Over Items"].context["noItemsLeft"]}}
  • 目前回合索引:{{$node["Loop Over Items"].context["currentRunIndex"]}}
Circular arrow showing items being processed one by one in a loop

Loop Over Items 節點

Loop Over Items 節點幫助您在需要時循環處理數據。

該節點保存原始傳入數據,並在每次迭代中通過 loop 輸出返回預定義數量的數據。當節點執行完成時,它合併所有處理過的數據並通過 done 輸出返回。

何時使用

默認情況下,n8n 節點設計為處理輸入項目列表。在以下情況下,Loop Over Items 節點特別有用:

  • 需要循環直到處理完所有項目
  • 處理特定節點例外情況
  • 避免來自其他服務的速率限制

節點參數

Batch Size:輸入每次調用要返回的項目數。

Reset:如果啟用,節點將在每次循環時重置,並使用當前輸入數據重新初始化。

Workflow diagram showing RSS feed data being processed in a loop

Loop Over Items – 實例演示

以下是一個從兩個不同來源讀取 RSS 訂閱的工作流程示例:

添加手動觸發器

開始創建工作流程,添加手動觸發器節點。

添加 Code 節點

添加 Code 節點並輸入以下代碼:

return [
  { json: { url: 'https://medium.com/feed/n8n-io' } },
  { json: { url: 'https://dev.to/feed/n8n' } }
];

添加 Loop Over Items 節點

配置 Loop Over Items:在 Batch Size 字段中設置批量大小為 1。

添加 RSS Feed Read 節點

將 url 從輸入映射到 URL 字段:{{ $json.url }}

在這個例子中,需要 Loop Over Items 節點是因為 RSS Feed Read 節點只處理它接收的第一個項目。

Code snippet showing how to check loop status with expressions

Loop Over Items – 檢查節點狀態

您可以使用表達式檢查 Loop Over Items 節點的狀態:

檢查節點是否已處理所有項目

使用以下表達式:

{{$node["Loop Over Items"].context["noItemsLeft"]}}

如果節點仍有數據要處理,表達式返回 false,否則返回 true。

獲取節點的當前運行索引

使用以下表達式:

{{$node["Loop Over Items"].context["currentRunIndex"];}}

這將返回節點當前正在處理的項目索引。

這些表達式對於創建複雜的循環邏輯和控制工作流程執行非常有用。

總結

  • 什麼時候用
    1. 下游節點只看第一筆;2) 想確保一筆筆處理;3) 要分批打 API/避免限流。
  • 怎麼設
    • Batch Size 決定每回合出貨量;
    • 需要依「最新輸入」重跑回合時才開 Reset
  • 實戰心法
    • 搭配 Wait/Rate Limit 在迴圈中節流更穩。
    • 需逐筆帶入欄位(如 URL),用 {{ $json.<field> }} 於 loop 分支對應。
    • noItemsLeft 在最後一回合後分支到收尾/通知。
    • 需要固定順序就先 Sort 再進 Loop。
  • 常見坑
    • 忘了設 Batch Size=1,下游仍只處理第一筆 → 其餘會被跳過。
    • 不必要地開 Reset 可能導致重複初始化。
    • 回合內大量 payload 合併,注意記憶體;必要時先 Filter/Limit 精簡欄位。

把 Loop Over Items 放在「多筆→逐筆」的關卡,你的工作流就能既準確可控,順利通過限流與單筆節點的限制。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端