n8n中的循环功能#
当您需要处理多个项目或重复执行某项操作时,循环非常有用,例如向通讯录中的每个联系人发送消息。n8n会自动处理这种重复性操作,这意味着您无需在工作流中专门构建循环。但某些节点例外。
在n8n中使用循环#
n8n节点可以接收任意数量的项目作为输入,处理这些项目并输出结果。您可以将每个项目视为单个数据点,或节点输出表中的单行数据。
节点通常对每个项目运行一次。例如,如果您想将客户数据存储节点中的客户姓名和备注作为Slack消息发送,您需要:
- 将Slack节点连接到客户数据存储节点。
- 配置参数。
- 执行该节点。
您将收到五条消息:每条消息对应一个项目。
这样您就可以处理多个项目,而无需在循环中显式连接节点。
执行节点一次#
在某些情况下,您可能不希望节点处理所有接收到的项目,例如仅向第一位客户发送Slack消息。您可以通过在该节点的设置选项卡中切换执行一次参数来实现此功能。当传入数据包含多个项目而您只想处理第一个时,此设置非常有用。
创建循环#
n8n通常会自动处理所有传入项的迭代。但在某些情况下,您需要手动创建循环来遍历所有项目。有关不会自动迭代所有传入项的节点列表,请参阅Node exceptions。
循环直到满足条件#
要在n8n工作流中创建循环,请将一个节点的输出连接到前一个节点的输入。添加一个IF节点来检查何时停止循环。
这是一个实现带有IF节点循环的示例工作流:
循环直至所有项目处理完毕#
当您需要循环处理所有项目时,请使用Loop Over Items节点。若要单独处理每个项目,请将Batch Size设置为1。
您可以将数据分批处理,并按组处理这些批次。这种方法有助于在处理大量传入数据时避免API速率限制,或者在您希望处理特定返回项组时非常有用。
Loop Over Items节点在所有传入项被分批并传递到工作流中的下一个节点后停止执行,因此无需添加IF节点来停止循环。
节点异常#
需要设计循环到工作流中的节点和操作:
- CrateDB 对
insert和update各执行一次。 - Code 节点在 Run Once for All Items 模式下:根据输入的代码片段处理所有项目。
- Execute Workflow 节点处于 为所有项目单次运行 模式。
- HTTP Request: 您必须自行处理分页。如果您的API调用返回分页结果,您需要创建一个循环来逐页获取数据。
- Microsoft SQL 对
insert、update和delete各执行一次。 - MongoDB 对
insert和update各执行一次。 - QuestDB 对
insert执行一次。 - Redis:
- 信息:此操作仅执行一次,无论传入数据中的项目数量如何。
- RSS Read 对请求的URL执行一次。
- TimescaleDB 对
insert和update各执行一次。

