Skip to content

数据集比较节点#

Compare Datasets 节点帮助您比较两个输入流的数据。

节点参数#

  1. 选择要比较的字段。在 Input A Field 中输入您想使用的输入流 A 的字段名称,在 Input B Field 中输入您想使用的输入流 B 的字段名称。
  2. 可选:您可以按多个字段进行比较。选择 Add Fields to Match 来设置更多比较项。
  3. 选择处理数据集差异的方式。在 When There Are Differences 中选择以下选项之一:
    • Use Input A Version 将输入流 A 作为数据权威来源
    • Use Input B Version 将输入流 B 作为数据权威来源
    • Use a Mix of Versions 对不同字段使用不同输入源
      • 使用 Prefer 选择 Input A VersionInput B Version 作为主要数据来源
      • For Everything Except 中输入例外字段来从另一个输入源获取数据。要添加多个输入字段,请输入逗号分隔的列表。
    • Include Both Versions 在输出中包含两个输入流,这可能会使数据结构更复杂。
  4. 决定是否使用 Fuzzy Compare。启用后,在比较字段时会容忍小的类型差异。例如,数字 3 和字符串 3 在启用 Fuzzy Compare 时会被视为相同,但禁用时则不会。

理解项目比较#

项目比较是一个两阶段过程:

  1. n8n 检查您选择的比较字段值在两个输入流中是否匹配。
  2. 如果比较字段匹配,n8n 会比较项目内的所有字段,以确定项目是相同还是不同。

节点选项#

使用节点 Options 来优化您的比较或调整比较行为。

需要跳过的比较字段#

输入您希望在比较中忽略的字段名称。

例如,如果您使用 person.language 作为匹配字段来比较以下两个数据集,n8n 会返回它们为不同。如果您将 person.name 添加到需要跳过的比较字段中,n8n 会返回它们为匹配。

 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
	// 输入1
	[
		{
			"person":
			{
				"name":	"Stefan",
				"language":	"de"
			}
		},
		{
			"person":
			{
				"name":	"Jim",
				"language":	"en"
			}
		},
		{
			"person":
			{
				"name":	"Hans",
				"language":	"de"
			}
		}
	]
	// 输入2
		[
		{
			"person":
			{
				"name":	"Sara",
				"language":	"de"
			}
		},
		{
			"person":
			{
				"name":	"Jane",
				"language":	"en"
			}
		},
		{
			"person":
			{
				"name":	"Harriet",
				"language":	"de"
			}
		}
	]

禁用点表示法#

是否禁止在字段名中使用 parent.child 的形式引用子字段(开启)或允许使用(关闭,默认值)。

多重匹配#

选择如何处理重复数据。默认为包含所有匹配项。您可以选择仅包含首个匹配项

例如,给定以下两个数据集:

 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
	// 输入1
	[
		{
			"fruit": {
				"type": "apple",
				"color": "red"
			}
		},
				{
			"fruit": {
				"type": "apple",
				"color": "red"
			}
		},
				{
			"fruit": {
				"type": "banana",
				"color": "yellow"
			}
		}
	]
	// 输入2
	[
		{
			"fruit": {
				"type": "apple",
				"color": "red"
			}
		},
				{
			"fruit": {
				"type": "apple",
				"color": "red"
			}
		},
				{
			"fruit": {
				"type": "banana",
				"color": "yellow"
			}
		}
	]

n8n 会在相同分支标签页中返回三个条目。两个分支中的数据是相同的。

如果选择仅包含首个匹配项,n8n 会在相同分支标签页中返回两个条目。虽然两个分支中的数据相同,但 n8n 只会返回匹配的"apple"项的第一个出现实例。

理解输出结果#

共有四种输出选项:

  • 仅A分支数据:包含仅出现在第一个输入中的数据
  • 相同分支数据:包含在两个输入中完全相同的数据
  • 差异分支数据:包含输入之间存在差异的数据
  • 仅B分支数据:包含仅出现在第二个输出中的数据

模板与示例#

Browse 数据集比较节点 integration templates, or search all templates