【n8n教程】:Limit节点,让你精准控制数据流量

n8n 的 Limit 节点是一个数据流量控制器 🎯。想象你是一个门卫,工作流中流入数据就像进门的访客。Limit 节点就是这个门卫,可以决定让多少访客进来,以及是从前面还是从后面排队的访客进来。这在处理大数据、避免 API 过载、或者只需要部分数据时特别有用。


Limit 节点是什么?

Limit 节点的作用: 根据指定的最大数量,删除超出限制的数据项。

简单来说,它有两个核心参数:

参数说明用途
Max Items最多保留多少条数据控制输出数据的数量
Keep保留前面还是后面的数据从开始或结束位置截取

使用场景


参数详解

1. Max Items 参数

输入一个数字,表示最多保留多少条数据项。

示例:

2. Keep 参数(两种选择)

选项 A:First Items(保留前面的)

从数据的开头开始保留指定数量的项。

场景: 你想要最早的 5 条记录


    
    
    
  原始数据:[记录1, 记录2, 记录3, 记录4, 记录5, 记录6, 记录7, 记录8]
Max Items = 5
Keep = First Items
结果:[记录1, 记录2, 记录3, 记录4, 记录5] ✓

选项 B:Last Items(保留后面的)

从数据的末尾开始保留指定数量的项。

场景: 你想要最新的 3 条记录


    
    
    
  原始数据:[记录1, 记录2, 记录3, 记录4, 记录5, 记录6]
Max Items = 3
Keep = Last Items
结果:[记录4, 记录5, 记录6] ✓

实战示例:完整工作流

场景描述

你有一个包含 100 条员工信息的列表,但只想处理前 5 个员工的数据。使用 Limit 节点可以轻松实现。

工作流结构


    
    
    
  Manual Trigger → Get Data → Limit Node → Display Result

逐步操作

第 1 步:添加触发节点

  1. 1. 点击 "+" 按钮,选择 Manual Trigger(手动触发)
  2. 2. 这将作为工作流的入口

第 2 步:模拟数据源

  1. 1. 添加一个 HTTP Request 节点(或使用 Mock Data/Function)
  2. 2. 或直接添加 Set 节点,设置测试数据

示例 Set 节点配置:


    
    
    
  {
  "employees"
: [
    {
"id": 1, "name": "张三", "department": "技术"},
    {
"id": 2, "name": "李四", "department": "销售"},
    {
"id": 3, "name": "王五", "department": "技术"},
    {
"id": 4, "name": "赵六", "department": "HR"},
    {
"id": 5, "name": "孙七", "department": "市场"},
    ...(更多数据)
  ]

}

第 3 步:添加 Limit 节点

  1. 1. 点击 "+" 按钮,搜索 "Limit"
  2. 2. 将其连接到上一个节点的输出

第 4 步:配置 Limit 节点

第 5 步:查看结果

  1. 1. 点击 "Execute Workflow" 运行工作流
  2. 2. 在 Limit 节点下方查看输出,应该只显示前 5 条员工记录

高级技巧

技巧 1:与 Loop 节点配合


    
    
    
  原始数据 → Limit → Loop Over Items

设置 Limit 为某个数值,然后在 Loop 节点中逐一处理数据。
优势: 即使循环原本会执行 100 次,也只会运行 5 次。

技巧 2:动态 Max Items

可以在 Max Items 字段使用表达式:


    
    
    
  {{ $node["PreviousNode"].json.count }}

这样可以根据上一个节点的输出动态调整限制数量。

技巧 3:配合过滤使用


    
    
    
  数据源 → Filter → Limit → 后续处理

先用 Filter 节点筛选符合条件的数据,再用 Limit 节点限制数量。

技巧 4:批量处理中的应用


    
    
    
  API Request → Limit (Max Items = 100) → Loop → Process Data

API 可能返回 10,000 条记录,但你想分批处理,每批 100 条。


完整工作流 JSON 代码

以下是一个完整的、可直接导入 n8n 的工作流 JSON。这个工作流演示如何使用 Limit 节点处理员工列表数据。


    
    
    
  {
  "name"
: "n8n Limit Node 教程 - 员工数据筛选",
  "nodes"
: [
    {

      "parameters"
: {},
      "id"
: "fb4a2e6e-1234-5678-abcd-ef1234567890",
      "name"
: "Manual Trigger",
      "type"
: "n8n-nodes-base.manualTrigger",
      "typeVersion"
: 1,
      "position"
: [100, 100]
    }
,
    {

      "parameters"
: {
        "mode"
: "raw",
        "jsonOutput"
: "{\"employees\": [{\"id\": 1, \"name\": \"张三\", \"department\": \"技术\", \"salary\": 15000}, {\"id\": 2, \"name\": \"李四\", \"department\": \"销售\", \"salary\": 12000}, {\"id\": 3, \"name\": \"王五\", \"department\": \"技术\", \"salary\": 16000}, {\"id\": 4, \"name\": \"赵六\", \"department\": \"HR\", \"salary\": 11000}, {\"id\": 5, \"name\": \"孙七\", \"department\": \"市场\", \"salary\": 13000}, {\"id\": 6, \"name\": \"周八\", \"department\": \"财务\", \"salary\": 14000}, {\"id\": 7, \"name\": \"吴九\", \"department\": \"技术\", \"salary\": 17000}, {\"id\": 8, \"name\": \"郑十\", \"department\": \"销售\", \"salary\": 12500}]}"
      }
,
      "id"
: "12345678-abcd-ef01-2345-6789abcdef12",
      "name"
: "Edit Fields",
      "type"
: "n8n-nodes-base.set",
      "typeVersion"
: 3.4,
      "position"
: [300, 100]
    }
,
    {

      "parameters"
: {
        "keepAtStart"
: true,
        "maxItems"
: 5
      }
,
      "id"
: "87654321-dcba-fe10-9876-543210fedcba",
      "name"
: "Limit - 保留前5个员工",
      "type"
: "n8n-nodes-base.limit",
      "typeVersion"
: 1,
      "position"
: [500, 100]
    }
,
    {

      "parameters"
: {
        "respondWith"
: "text",
        "responseBody"
: "=处理成功!共筛选出 {{ Object.keys($json).length }} 条员工记录。\\n员工列表:{{ JSON.stringify($json, null, 2) }}"
      }
,
      "id"
: "11111111-2222-3333-4444-555555555555",
      "name"
: "Respond to Webhook",
      "type"
: "n8n-nodes-base.respondToWebhook",
      "typeVersion"
: 1.2,
      "position"
: [700, 100]
    }

  ]
,
  "connections"
: {
    "Manual Trigger"
: {
      "main"
: [
        [

          {

            "node"
: "Edit Fields",
            "type"
: "main",
            "index"
: 0
          }

        ]

      ]

    }
,
    "Edit Fields"
: {
      "main"
: [
        [

          {

            "node"
: "Limit - 保留前5个员工",
            "type"
: "main",
            "index"
: 0
          }

        ]

      ]

    }
,
    "Limit - 保留前5个员工"
: {
      "main"
: [
        [

          {

            "node"
: "Respond to Webhook",
            "type"
: "main",
            "index"
: 0
          }

        ]

      ]

    }

  }
,
  "active"
: false,
  "settings"
: {},
  "staticData"
: null,
  "meta"
: {
    "instanceId"
: "tutorial-instance"
  }

}

如何使用这个 JSON:

  1. 1. 在 n8n 中,点击右上角的 (三个点)
  2. 2. 选择 Import from FileImport from URL
  3. 3. 粘贴上面的 JSON 代码
  4. 4. 点击 Import 完成导入
  5. 5. 点击 Execute 按钮运行工作流
  6. 6. 在 Respond to Webhook 节点查看结果

预期输出:


    
    
    
  处理成功!共筛选出 5 条员工记录。
员工列表:
[
  {"id": 1, "name": "张三", "department": "技术", "salary": 15000},
  {"id": 2, "name": "李四", "department": "销售", "salary": 12000},
  {"id": 3, "name": "王五", "department": "技术", "salary": 16000},
  {"id": 4, "name": "赵六", "department": "HR", "salary": 11000},
  {"id": 5, "name": "孙七", "department": "市场", "salary": 13000}
]

常见问题 (FAQ)

Q1:Limit 节点能对数据进行排序吗?
A:不能。Limit 仅用于限制数量。如果需要排序,应先使用 Sort 节点,再使用 Limit

Q2:如果输入数据少于 Max Items 怎么办?
A:不会出错。所有数据都会保留并通过。例如,输入 3 条数据,Max Items 设为 5,结果仍是这 3 条数据。

Q3:Limit 节点能处理嵌套数组吗?
A:是的。但它只限制顶层数组的项数,不会递归处理嵌套的数据结构。

Q4:是否可以跳过某些项,只保留中间的?
A:不能直接实现。应该用 Split OutLoop Over Items 配合 If 节点实现。

Q5:Limit 会影响性能吗?
A:不会显著影响。相反,它通过减少数据量来提升性能,特别是在处理大型数据集时。


总结

要点说明
节点名称Limit
主要功能限制通过的数据项数量
参数数量2 个(Max Items + Keep)
常用场景测试、API 限流、批量处理
性能影响⬆️ 正面影响(数据少 = 更快)
难度等级⭐ 非常简单

Limit 节点虽然简单,但在数据控制工作流优化中非常实用。掌握它,是迈向 n8n 高手的第一步!


引用链接

[1] 官方文档: https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.limit/
[2] n8n系列教程: https://www.undsky.com/blog/?category=n8n%E6%95%99%E7%A8%8B#