n8n Merge 节点完整教程(含流程图 + Demo 数据 + 工作流)

🧩 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 自动化项目中必学技能,熟练之后所有数据都能像乐高一样拼接。