🧩 n8n Merge 节点完整教程(含流程图 + Demo 数据 + 工作流)
Merge 节点是 n8n 中最常用的数据整合工具,它用于把来自两个节点的数据"合并、拼接或对齐"。
适用于:
-
对齐 A 与 B 的数据
-
根据 ID 合并不同来源的数据
-
做数组拼接
-
给数据添加标签、标识或补全字段
-
多 API 合并成一个最终对象
本文将从 可视化流程图 → 模式讲解 → 示例 → 测试数据 → 工作流下载 带你完全掌握 Merge 节点。
1️⃣ Merge 节点整体流程概念图(超直观)
✔ ① Merge By Key(按字段匹配合并)
┌─────────────┐ ┌──────────────┐
│ Node A │ │ Node B │
│ (user info) │ │ (order info) │
└──────┬────────┘ └────────┬──────┘
│ │
└──────── Merge ─────────┘
(By Key: user_id)
│
▼
┌─────────────────────┐
│ 合并后: │
│ user_id, name, │
│ order_amount ... │
└─────────────────────┘
✔ ② Append(追加:把 A 的数据接到 B 后面)
A 数据: [1,2] B 数据:[3,4]
┌──────────── Merge (Append) ────────────┐
▼ ▼
合并后数据: [1,2,3,4]
✔ ③ Keep Key Matches(只保留两边都有的项)
A = [id 1, id 2, id 3]
B = [id 2, id 3]
Keep Key Matches → 只保留:id 2、id 3
✔ ④ Multiplex(笛卡尔积,组合所有数据)
A:[a1, a2] B:[b1, b2]
Multiplex → 4 条数据:
(a1,b1) (a1,b2) (a2,b1) (a2,b2)
2️⃣ Merge 节点四种模式(最重要部分)
| 模式 | 用途 |
|---|---|
| Merge By Key | 按字段合并两个数据源(最常用) |
| Append | 拼接数组,A+B |
| Keep Key Matches | 只保留两边都出现的数据 |
| Multiplex | 做所有组合(如创建订单 × 商品所有组合) |
3️⃣ 完整实战示例:按 user_id 合并两个数据源
A 节点数据(用户信息)
[
{ "user_id": 101, "name": "Alice" },
{ "user_id": 102, "name": "Bob" }
]
B 节点数据(订单信息)
[
{ "user_id": 101, "order_amount": 320 },
{ "user_id": 102, "order_amount": 150 }
]
Merge 配置
-
Mode: Merge By Key
-
Key A:
user_id -
Key B:
user_id
合并结果
[
{ "user_id": 101, "name": "Alice", "order_amount": 320 },
{ "user_id": 102, "name": "Bob", "order_amount": 150 }
]
🟢 非常适合用于多 API 融合
🟢 CRM 数据整合
🟢 电商订单 + 用户信息整合
🟢 会员信息补全
4️⃣ 完整 Demo 工作流(可立即导入 n8n)
将以下 JSON 保存为 merge-demo.json 导入即可:
{
"nodes": [
{
"parameters": {
"keepOnlySet": false,
"values": {
"json": [
{
"name": "data",
"value": "[{\"user_id\":101,\"name\":\"Alice\"},{\"user_id\":102,\"name\":\"Bob\"}]"
}
]
}
},
"id": "SetA",
"name": "Set A (Users)",
"type": "n8n-nodes-base.set",
"typeVersion": 1,
"position": [320, 220]
},
{
"parameters": {
"keepOnlySet": false,
"values": {
"json": [
{
"name": "data",
"value": "[{\"user_id\":101,\"order_amount\":320},{\"user_id\":102,\"order_amount\":150}]"
}
]
}
},
"id": "SetB",
"name": "Set B (Orders)",
"type": "n8n-nodes-base.set",
"typeVersion": 1,
"position": [320, 420]
},
{
"parameters": {
"mode": "mergeByKey",
"mergeByKey": {
"fields": {
"field1": "user_id",
"field2": "user_id"
}
}
},
"id": "MergeNode",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"typeVersion": 2,
"position": [620, 320]
}
],
"connections": {
"Set A (Users)": {
"main": [
[{ "node": "Merge", "type": "main", "index": 0 }]
]
},
"Set B (Orders)": {
"main": [
[{ "node": "Merge", "type": "main", "index": 1 }]
]
}
}
}
5️⃣ 常见错误与解决方式
❌ Merge 结果为空?
可能原因:
-
两边 key 不一致(如 userId vs user_id)
-
数据不是 JSON 数组
-
一侧为空数组
❌ 多条数据被错误合并?
检查:
- Merge By Key 必须是唯一字段,不可重复
❌ 数组顺序异常?
使用 Append 模式时属于正常现象
→ 如需排序可用 Function 节点排序
6️⃣ 最终总结
| 使用场景 | 推荐模式 |
|---|---|
| 会员信息 + 订单补全 | Merge By Key |
| A+B 直接拼接 | Append |
| 找交集 | Keep Key Matches |
| 做组合表 / 笛卡尔积 | Multiplex |
Merge 是 n8n 自动化项目中必学技能,熟练之后所有数据都能像乐高一样拼接。