跳到主要内容

N8N基础节点 Filter过滤节点:精准筛选数据

发表时间:2025-11-27

在自动化工作流中,数据处理的效率至关重要。你是否曾遇到这样的场景:从数据源获取大量信息,但其中大部分是已经处理过的旧数据?这不仅浪费资源,还可能导致数据重复和处理效率低下。今天,我们将深入探讨 n8n 中的“过滤器”节点,它能帮助你精准筛选所需数据,告别冗余。

什么是过滤器节点?

“过滤器”(Filter)节点,顾名思义,是 n8n 中用于根据特定条件筛选数据的强大工具。它接收上游节点输出的数据,然后根据你设置的条件,只保留符合要求的数据项,将不符合的项丢弃。这在处理动态数据流时尤为实用,例如从 RSS 订阅源、API 接口或数据库中获取数据时,仅保留最新或最相关的信息。

场景示例:筛选每日更新的 RSS 订阅

假设我们有一个 RSS 订阅源(如 producthunt.com/feed),每天会发布数十条新内容。如果我们的工作流每天运行一次,将这些内容存入数据库或表格,我们不希望重复存储已经存在的数据。此时,过滤器节点就能大显身手,帮助我们只保留“昨天之后”发布的最新内容。

1. 获取原始数据

首先,我们使用“RSS Read”节点从订阅源获取数据。执行后,你可能会看到输出包含了 50 甚至更多的数据项,每项都包含 title(标题)、link(链接)、pubDate(发布日期)、author(作者)和 content(内容)等字段。

2. 添加过滤器节点

接下来,将“过滤器”节点连接到“RSS Read”节点之后。点击过滤器节点,进入其配置界面。

3. 配置过滤条件

在“Parameters”(参数)选项卡中,我们将设置筛选条件:

  • 选择数据字段: 在“Conditions”(条件)区域,点击输入框,将 RSS Read 节点输出中的 pubDate 字段拖拽过来。n8n 会智能识别这是一个日期时间类型的数据。

  • 选择比较操作符: 对于日期时间类型,我们可以选择多种操作符,例如“is after”(在之后)、“is before”(在之前)、“is after or equal to”(在之后或等于)等。在此场景中,我们选择“is after or equal to”,表示要保留发布日期在某个时间点之后或当天的数据。

  • 设置动态日期: 为了实现每天自动筛选出“昨天”之后的数据,我们可以利用 n8n 的内置表达式。在第二个输入框中,输入以下表达式:

    {{ $now.minus({ days: 1 }).format('yyyy-MM-dd') }}

    这个表达式的含义是:

    • $now:获取当前时间。
    • .minus({ days: 1 }):将当前时间减去 1 天,得到昨天的日期。
    • .format('yyyy-MM-dd'):将日期格式化为“年-月-日”的字符串,以便与 pubDate 进行比较。

    💡 小贴士: 如果你对 n8n 的表达式语法不熟悉,可以借助 AI 工具(如 ChatGPT)来帮助生成和理解这些表达式。

4. 查看筛选结果

配置完成后,点击“Execute step”(执行步骤)来测试过滤器。在输出区域,你会看到数据被分成了两部分:

  • Kept (保留项): 这些是符合条件的数据项。例如,如果今天(11月27日)运行,表达式会计算出11月26日,过滤器将保留11月26日及之后发布的所有内容。
  • Discarded (丢弃项): 这些是不符合条件的数据项,即11月26日之前发布的内容。

通过这种方式,原本的 50 条数据可能只会保留 6 条最新的数据,大大减少了后续处理的数据量。

5. 其他数据类型和操作符

除了日期时间,过滤器节点还支持多种数据类型及其对应的操作符:

  • 字符串 (String):
    • contains (包含)
    • starts with (以...开头)
    • is empty (为空)
    • is equal to (等于)
    • ...
  • 数字 (Number):
    • is greater than (大于)
    • is less than (小于)
    • is equal to (等于)
    • ...
  • 布尔值 (Boolean):
    • is true (为真)
    • is false (为假)
    • is equal to (等于)
    • ...
  • 数组 (Array) 和 对象 (Object): 通常用于检查是否存在、是否为空、包含特定元素或属性等。

总结

过滤器节点是 n8n 工作流中不可或缺的组件,它赋予你对数据流的精细控制能力。通过灵活运用各种数据类型和操作符,你可以轻松实现:

  • 防止数据冗余: 仅处理最新的或未曾处理过的数据。
  • 提高效率: 减少处理不必要数据的时间和计算资源。
  • 定制化数据: 根据业务需求只提取最相关的信息。

掌握过滤器节点的使用,将极大地提升你的 n8n 工作流的智能化和效率。快去尝试将其应用到你的自动化任务中吧!