跳到主要内容

Remove Duplicates(去重)节点

使用 Remove Duplicates 节点识别并删除符合以下条件的数据项:

  • 在单次执行中,所有字段或部分字段相同。
  • 与先前执行中出现的数据项相同,或其值、日期未超过先前执行中的数据项。

当数据可能重复时,这个节点很有用,例如用户创建多个账户,或客户多次提交同一订单。数据集较大时,识别和移除这些数据项会更加困难。

通过与先前执行的数据比较,Remove Duplicates 节点可以删除以前已出现过的数据项,也可以确保新数据项的日期晚于先前日期,或其值高于先前值。

信息

1.64.0 中的重大变更

n8n 团队在 n8n 1.64.0 中全面改进了此节点。本文档介绍新版节点。如果使用较早的 n8n 版本,请参阅此文档的旧版本。

操作模式 ​

Remove Duplicates 节点的行为取决于 operation(操作)参数:

Remove Items Repeated Within Current Input(移除当前输入内的重复项) ​

将“Operations”字段设为 Remove Items Repeated Within Current Input(移除当前输入内的重复项)时,Remove Duplicates 节点会识别并移除当前输入中的重复数据项,可以比较所有字段,也可以只比较部分字段。

移除当前输入内的重复项:参数 ​

使用 Remove Items Repeated Within Current Input 操作时,可配置以下参数:

  • Compare(比较):选择 n8n 应比较哪些输入字段,判断数据项是否相同。可选:
    • All Fields(所有字段):比较输入数据的所有字段。
    • All Fields Except(除指定字段外的所有字段):输入要从比较中排除的字段,多个值用逗号分隔。
    • Selected Fields(选定字段):输入要纳入比较的字段,多个值用逗号分隔。

移除当前输入内的重复项:选项 ​

比较类型选择 All Fields Except 或 Selected Fields 时,可以添加以下选项:

  • Disable Dot Notation(禁用点号表示法):关闭时,使用 parent.child 格式的点号表示法引用子字段;开启时,不使用这种表示法。
  • Remove Other Fields(移除其他字段):开启时,移除未参与比较的字段;关闭时,保留这些字段。

Remove Items Processed in Previous Executions(移除先前执行已处理的数据项) ​

将“Operation”字段设为 Remove Items Processed in Previous Executions 时,Remove Duplicates 节点会将当前输入与先前执行的数据项比较。

移除先前执行已处理的数据项:参数 ​

使用 Remove Items Processed in Previous Executions 操作时,可配置以下参数:

  • Keep Items Where(保留条件):选择 n8n 判断应保留哪些数据项的方式。可选:

    • Value Is New(值是新的):如果数据项的值与先前执行中的值相同,n8n 会移除该项。
    • Value Is Higher than Any Previous Value(值高于所有先前值):如果当前值未高于先前的所有值,n8n 会移除该项。
    • Value Is a Date Later than Any Previous Date(日期晚于所有先前日期):如果当前日期未晚于先前的所有日期,n8n 会移除该日期数据项。
  • Value to Dedupe On(去重依据值):要比较的一个或多个输入字段。所需的具体格式由 Keep Items Where 的选择决定:

    • 使用 Value Is New 时,必须是具有唯一 ID 的输入字段或字段组合。
    • 使用 Value Is Higher than Any Previous Value 时,必须是具有递增值的输入字段或字段组合。
    • 使用 Value Is a Date Later than Any Previous Date 时,必须是包含 ISO 格式日期值的输入字段。

移除先前执行已处理的数据项:选项 ​

使用 Remove Items Processed in Previous Executions 操作时,可配置以下选项:

  • Scope(作用域):设置 n8n 存储和使用去重比较数据的方式。可选:
    • Node(节点,默认):此节点的数据独立于工作流中其他 Remove Duplicates 节点实例存储。使用此作用域时,可以清除此节点实例的去重历史,而不影响其他节点。
    • Workflow(工作流):在工作流级别存储去重数据,与其他使用“workflow”作用域的 Remove Duplicates 节点共享。使用“node”作用域的其他 Remove Duplicates 节点,其去重数据仍独立管理。

Keep Items Where 选择 Value Is New 时,还可配置以下选项:

  • History Size(历史大小):n8n 为跨执行去重而存储的数据项数量。Scope 决定此历史大小是仅针对当前 Remove Duplicates 节点实例,还是与工作流中其他实例共享。默认存储 10,000 个数据项。

Clear Deduplication History(清除去重历史) ​

将“Operation”字段设为 Clear Deduplication History 时,Remove Duplicates 节点会管理并清除先前执行所存储的数据项。此操作不影响当前输入中的任何数据项,而是管理“Remove Items Processed in Previous Executions”操作使用的数据项数据库。

清除去重历史:参数 ​

使用 Clear Deduplication History 操作时,可配置以下参数:

  • Mode(模式):选择如何管理数据库中存储的键/值项。可选:
    • Clean Database(清理数据库):删除数据库中存储的全部去重数据,将去重数据库重置为初始状态。

清除去重历史:选项 ​

使用 Clear Deduplication History 操作时,可配置以下选项:

  • Scope(作用域):设置 n8n 管理去重数据库时使用的范围。
    • Node(节点,默认):管理当前 Remove Duplicates 节点实例专用的去重数据库。
    • Workflow(工作流):管理所有使用工作流作用域的 Remove Duplicates 节点实例共享的去重数据库。

模板与示例 ​

使用 Remove Duplicates 节点的模板及用法示例,请参阅模板与示例。

相关资源 ​

了解 n8n 工作流中的数据结构与数据流。

本文为社区中文翻译。查看对应英文原文