n8n 的 Limit 节点是一个数据流量控制器 🎯。想象你是一个门卫,工作流中流入数据就像进门的访客。Limit 节点就是这个门卫,可以决定让多少访客进来,以及是从前面还是从后面排队的访客进来。这在处理大数据、避免 API 过载、或者只需要部分数据时特别有用。
Limit 节点的作用: 根据指定的最大数量,删除超出限制的数据项。
简单来说,它有两个核心参数:
| 参数 | 说明 | 用途 |
|---|---|---|
| Max Items | 最多保留多少条数据 | 控制输出数据的数量 |
| Keep | 保留前面还是后面的数据 | 从开始或结束位置截取 |
输入一个数字,表示最多保留多少条数据项。
示例:
从数据的开头开始保留指定数量的项。
场景: 你想要最早的 5 条记录
原始数据:[记录1, 记录2, 记录3, 记录4, 记录5, 记录6, 记录7, 记录8]
Max Items = 5
Keep = First Items
结果:[记录1, 记录2, 记录3, 记录4, 记录5] ✓从数据的末尾开始保留指定数量的项。
场景: 你想要最新的 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示例 Set 节点配置:
{
"employees": [
{"id": 1, "name": "张三", "department": "技术"},
{"id": 2, "name": "李四", "department": "销售"},
{"id": 3, "name": "王五", "department": "技术"},
{"id": 4, "name": "赵六", "department": "HR"},
{"id": 5, "name": "孙七", "department": "市场"},
...(更多数据)
]
}5原始数据 → Limit → Loop Over Items设置 Limit 为某个数值,然后在 Loop 节点中逐一处理数据。
优势: 即使循环原本会执行 100 次,也只会运行 5 次。
可以在 Max Items 字段使用表达式:
{{ $node["PreviousNode"].json.count }}这样可以根据上一个节点的输出动态调整限制数量。
数据源 → Filter → Limit → 后续处理先用 Filter 节点筛选符合条件的数据,再用 Limit 节点限制数量。
API Request → Limit (Max Items = 100) → Loop → Process DataAPI 可能返回 10,000 条记录,但你想分批处理,每批 100 条。
以下是一个完整的、可直接导入 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"
}
}预期输出:
处理成功!共筛选出 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}
]Q1:Limit 节点能对数据进行排序吗?
A:不能。Limit 仅用于限制数量。如果需要排序,应先使用 Sort 节点,再使用 Limit。
Q2:如果输入数据少于 Max Items 怎么办?
A:不会出错。所有数据都会保留并通过。例如,输入 3 条数据,Max Items 设为 5,结果仍是这 3 条数据。
Q3:Limit 节点能处理嵌套数组吗?
A:是的。但它只限制顶层数组的项数,不会递归处理嵌套的数据结构。
Q4:是否可以跳过某些项,只保留中间的?
A:不能直接实现。应该用 Split Out 或 Loop 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#