合并和拆分数据
在本章中,您将学习如何合并和拆分数据,以及在什么情况下执行这些操作可能有用。
合并数据
在某些情况下,您可能需要合并(组合)和处理来自不同来源的数据。
合并数据可能涉及:
- 从多个来源创建一个数据集。
- 在多个系统之间同步数据。这可能包括删除重复数据,或在一个系统中的数据发生变化时更新另一个系统中的数据。
单向与双向同步
在单向同步中,数据只在一个方向上同步。一个系统作为唯一的事实来源。当主系统中的信息发生变化时,辅助系统中的信息也会自动更改;但如果辅助系统中的信息发生变化,则更改不会反映在主系统中。
双向同步是指数据在两个系统之间双向同步。当其中一个系统中的信息发生变化时,另一个系统中的信息也会自动发生变化。
本博客教程解释了如何在两个 CRM 之间单向和双向同步数据。在 n8n 中,您可以使用
合并节点合并来自两个不同节点的数据,该节点提供了几个合并选项:请注意,“合并”>“按字段合并”需要您输入要匹配的输入字段。这些字段应在数据源之间包含相同的值,以便 n8n 能够正确地将数据匹配在一起。在
“合并”节点中,它们被称为和。
以点符号输入属性
如果要在
合并节点参数和中引用嵌套值,则需要以点符号格式(作为文本,而不是表达式)输入属性键。笔记
您还可以在别名 Join 下找到
Merge 节点。如果您熟悉 SQL 连接,这可能会更直观。合并练习
构建一个合并来自客户数据存储节点和代码节点的数据的工作流。
- 添加一个合并节点,该节点来自客户数据存储节点和代码节点。
- 在客户数据存储节点中,运行操作获取所有人员。
- 在代码节点中,创建一个包含两个对象的数组,每个对象包含三个属性: 、和,其中 属性有两个子属性和。
- 使用客户数据库中两个角色的信息填充这些属性的值。
- 例如,Jay Gatsby 的语言是英语,国家/地区名称是美国。
- 在合并节点中,尝试不同的合并选项。
Show me the solution
本练习的工作流程如下:
如果您使用
“保持匹配”选项合并数据并使用名称作为要匹配的输入字段,则结果应如下所示(请注意,此示例仅包含 Jay Gatsby;您的结果可能因您选择的字符而异):要检查节点的配置,您可以复制下面的 JSON 工作流代码并将其粘贴到编辑器 UI 中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | |
循环
在某些情况下,你可能需要对数组的每个元素或每个数据项执行相同的操作(例如,向通讯录中的每个联系人发送消息)。用技术术语来说,你需要迭代数据(使用循环)。
n8n 通常会自动处理这种重复处理,因为节点针对每个项目运行一次,因此您不需要在工作流中构建循环。
但是,有些
节点和操作例外,需要您在工作流程中构建循环。要
在 n8n 工作流中创建循环,您需要将一个节点的输出连接到前一个节点的输入,并添加一个If 节点来检查何时停止循环。批量拆分数据
如果需要处理大量传入数据、多次执行
代码节点或避免 API 速率限制,最好将数据分成批次(组)并处理这些批次。对于这些流程,请使用
“循环遍历项目”节点。此节点将输入数据拆分为指定的批次大小,并在每次迭代时返回预定义数量的数据。循环遍历项目节点的执行
在所有传入
项目分成批次并传递到工作流中的下一个节点后,“循环项目”节点将停止执行,因此无需添加If 节点来停止循环。循环/批量练习
构建一个从 Medium 和 dev.to 读取 RSS 源的工作流。该工作流应包含三个节点:
- 返回 Medium ( ) 和 dev.to ( )的 RSS 源的 URL 的代码节点。
- 带有 的Loop Over Items 节点,它接收来自Code 节点和RSS Read 节点的输入并迭代各个项目。
- RSS阅读节点获取 Medium RSS 提要的 URL,以表达式形式传递: 。RSS
- 阅读节点
- 是
- 之一
- ,它仅处理收到的第一个项目,因此
- Loop Over Items 节点
- 对于迭代多个项目是必需的。
Show me the solution
- 添加代码节点。您可以通过多种方式设置代码格式,其中一种方法是:将
- 模式
- 设置
- 为
- 。
- 语言
- 设置
- 为
- 。
- 复制以下代码并将其粘贴到 JavaScript 代码编辑器中:
- 添加一个Loop Over Items 节点连接到Code 节点。
- 将
- Batch Size
- 为
- 。
- “循环项目”节点会自动添加一个名为“替换我”的节点。请用“RSS 阅读”节点替换该节点。将
- URL
- 设置
- 为使用代码节点中的 URL
- :。
本练习的工作流程如下:
要检查节点的配置,您可以复制下面的 JSON 工作流代码并将其粘贴到编辑器 UI 中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | |