Skip to content

n8n 中的循环#

当您想要处理多个项目或重复执行操作时,循环很有用,例如向地址簿中的每个联系人发送消息。n8n 自动处理这种重复处理,这意味着您无需在工作流中专门构建循环。有一些节点不是这样的。

在 n8n 中使用循环#

n8n 节点接受任意数量的项目作为输入,处理这些项目,并输出结果。您可以将每个项目视为单个数据点,或节点输出表中的单行。

客户数据存储节点输出

节点通常为每个项目运行一次。例如,如果您想将客户数据存储节点中客户的姓名和备注作为消息发送到 Slack,您将:

  1. 将 Slack 节点连接到客户数据存储节点。
  2. 配置参数。
  3. 执行节点。

您将收到五条消息:每个项目一条。

这就是您可以在不必显式地将节点连接成循环的情况下处理多个项目的方式。

执行节点一次#

对于您不希望节点处理所有接收项目的情况,例如仅向第一个客户发送 Slack 消息,您可以通过在该节点的设置选项卡中切换执行一次参数来实现。当传入数据包含多个项目而您只想处理第一个项目时,此设置很有用。

创建循环#

n8n 通常处理所有传入项目的迭代。但是,在某些情况下,您必须创建一个循环来遍历所有项目。有关不自动遍历所有传入项目的节点列表,请参阅节点例外

循环直到满足条件#

要在 n8n 工作流中创建循环,请将一个节点的输出连接到前一个节点的输入。添加一个 IF 节点来检查何时停止循环。

这是一个使用 IF 节点实现循环的示例工作流

示例工作流的编辑器 UI 视图

循环直到处理完所有项目#

当您想要循环直到处理完所有项目时,请使用 Loop Over Items 节点。要单独处理每个项目,请将批量大小设置为 1

您可以将数据分批处理这些批次。这种方法对于在处理大量传入数据时避免 API 速率限制或当您想要处理特定组的返回项目时很有用。

Loop Over Items 节点在所有传入项目被分成批次并传递给工作流中的下一个节点后停止执行,因此无需添加 IF 节点来停止循环。

节点例外#

您需要在工作流中设计循环的节点和操作:

  • CrateDBinsertupdate 执行一次。
  • 代码节点在为所有项目运行一次模式下:根据输入的代码片段处理所有项目。
  • 执行工作流节点在为所有项目运行一次模式下。
  • HTTP 请求:您必须自己处理分页。如果您的 API 调用返回分页结果,您必须创建一个循环来一次获取一页。
  • Microsoft SQLinsertupdatedelete 执行一次。
  • MongoDBinsertupdate 执行一次。
  • QuestDBinsert 执行一次。
  • Redis
    • Info:此操作只执行一次,无论传入数据中的项目数量如何。
  • RSS Read 对请求的 URL 执行一次。
  • TimescaleDBinsertupdate 执行一次。