数据拼接术:n8n Merge 节点 7 种模式图文详解 (Append/Upsert/Join)

2026-01-20 14 0

还在傻傻复制粘贴?n8n Merge 节点才是数据拼接的“手术刀”

大家好,我是 N8N大学 的主编。很多刚接触 n8n 的同学,在面对来自两个不同源头的数据时,第一反应往往是写代码节点(Code)或者用复杂的 IF 逻辑去手动拼接。

其实,你完全不需要这么折腾。n8n 官方早就为我们准备好了终极武器——Merge(合并)节点。它就像一把瑞士军刀,专门处理数据的“拉郎配”。

今天,笔者就带大家硬核拆解 Merge 节点的 7 种核心模式。拒绝正确的废话,咱们直接上干货,教你如何像老司机一样处理数据流。

Merge 节点到底在干什么?

简单来说,Merge 节点就是处理“多对多”关系的。它接收两条(或多条)数据流,然后根据你设定的规则,决定它们的最终命运。

在 n8n 中,最常见的场景是:一条流处理“订单数据”,另一条流处理“用户信息”。如何把订单里的 user_id 对应上用户信息里的详情?这就是 Merge 的工作。

核心实操:7 种模式图文详解

打开你的 n8n,拖入一个 Merge 节点,点击 "Mode" 下拉框,你会看到 7 个选项。别慌,我们一个个拆解。

1. Append(追加模式)

这是最简单粗暴的模式。

  • 逻辑:把 Input 1 的数据原样保留,再把 Input 2 的数据接在后面。就像把两张纸粘在一起。
  • 场景:合并两个日期范围不同的报表(例如:周一的数据 + 周二的数据)。
  • 注意:如果两条流的数据结构(字段名)不同,它也会强行合并,缺失的字段为 null。

2. Keep All Items(保留所有项)

这是 Append 的“膨胀版”。

  • 逻辑:Input 1 有 N 条数据,Input 2 有 M 条数据。结果是 N × M 条数据。它会为 Input 1 的每一条数据,都配上 Input 2 的所有数据。
  • 场景:批量发送邮件。Input 1 是 100 个客户,Input 2 是 5 种邮件模板。结果就是 500 条组合数据(每个客户收到 5 封邮件)。

3. Merge By Key(按键合并 - 最常用!)

这就是传说中的 "VLOOKUP" 功能,数据清洗的神器。

  • 逻辑:指定一个“钥匙”(Key),比如 user_id。两边数据中 ID 相同的,就会被合并成一条。
  • 场景:订单表(有 user_id) + 用户表(有 user_idaddress) = 带收货地址的订单表。
  • 关键参数:你需要在 "Input Data Field Name" 里填入字段名。如果两边字段名不一样,可以用 Set 节点先重命名。

4. Merge By Position(按位置合并)

严格按顺序一一对应。

  • 逻辑:Input 1 的第 1 条 和 Input 2 的第 1 条 合并;第 2 条 和 第 2 条 合并。
  • 场景:非常少见,通常用于处理确定顺序的数据流。
  • 警告:如果两边数量不一致,多出来的部分会被丢弃。慎用!

5. Wait Mode(等待模式)

这是 n8n 的高级玩法,专门解决“鸡生蛋还是蛋生鸡”的问题。

6. Wait For Both(等两个都来)

只有当 Input 1 和 Input 2 都触发了数据,节点才会向下执行。它会把最近一次收到的两份数据拼在一起。

  • 场景:Webhook A 收到“付款通知”,Webhook B 收到“发货通知”。只有当这两个事件都发生了,才触发后续的短信通知。

7. Wait For First Input / Wait For Second Input(等指定的一个)

逻辑很简单:A 来了就用 A 的数据往下走;B 来了就用 B 的数据往下走。

  • 场景:双保险机制。比如一个流程通过 Webhook 接收数据,另一个流程通过轮询(Polling)获取数据。只要有一个成功获取,就继续执行,避免空等。

实战避坑指南:笔者的血泪经验

在 N8N大学 的实战训练营里,很多学员在 Merge 节点踩过坑。这里分享两个最常见的:

1. “按键合并”找不到数据?
很多时候是因为数据类型不匹配。比如 Input 1 的 id 是数字 123,而 Input 2 的 id 是字符串 "123"。在 n8n 里,这被视为不同的值。解决办法:在合并前,用 Set 节点或 Code 节点强制转换类型。

2. 数据丢失之谜
在使用 "Keep All Items" 时,如果你开启了 "Resolve Output"(解析输出),可能会丢失某些字段。如果你发现合并后字段少了,试着把 "Resolve Output" 关掉,或者检查 "Options" 里的设置。

FAQ 问答

Q1: Merge 节点和 Aggregate 节点有什么区别?
A: 简单说,Merge 是“拼接”(把两堆积木搭在一起),Aggregate 是“统计”(把积木按颜色分类数数)。如果你要计算总数、求平均值,请用 Aggregate;如果你要合并详情,请用 Merge。

Q2: 为什么我的 "Merge By Key" 结果是空的?
A: 最大的可能是“钥匙”没对上。请检查两边字段名是否完全一致(大小写敏感),以及数据里是否真的存在相同的 Key 值。建议先用 View/Download JSON 看清楚数据长什么样。

Q3: Merge 节点可以处理超过 2 个输入吗?
A: 可以!点击节点下方的 "Add Input" 即可增加输入端口。你可以把 A、B、C 三份数据同时汇入一个 Merge 节点进行处理。

总结与资源

Merge 节点是 n8n 数据流处理的枢纽。掌握它,意味着你已经跨过了“简单连接”的门槛,开始真正处理复杂的业务逻辑。

如果你还在为数据流转发愁,不妨打开 n8n 亲手试一试这 7 种模式。我是 N8N大学,致力于让你的每一次自动化都不仅是可行的,而且是优雅的。

相关文章

n8n Wait节点在数据同步中的延迟控制实战
n8n Wait节点免费版:我能用它实现定时任务吗?
n8n Error Handling节点:当自动化流程“翻车”时,如何让它自动“扶起来”?
n8n Error Handling节点报错常见问题解决
当n8n流程意外中断,Error Handling节点如何配置才能优雅降级?
n8n Error Handling节点和Try/Catch节点,到底该怎么选?

发布评论