首先,我们分析标题:“不只是赋值:使用 Set (Edit Fields) 节点保留特定字段与重命名 Key”。
**意图分析:**
* **关键词**:“Set (Edit Fields) 节点”、“保留特定字段”、“重命名 Key”。
* **内容类型**:这明显是一个**实操类**的教程。它不是在问“什么是Set节点”,也不是报错,而是在教用户如何使用这个节点的特定高级功能。
* **目标受众**:已经对 n8n 有基础了解,但在数据处理(特别是数据清洗和重塑)方面遇到瓶颈的用户。他们可能遇到了数据丢失,或者觉得手动处理太麻烦。
**策略选择:**
该标题指向具体的“操作方法”和“功能挖掘”,因此必须选择 **模式 A (教程/实战类)**。
**文章结构规划:**
1. **场景导入**:通过“只想发送部分数据”或“字段名不好听”的痛点切入。
2. **准备工作**:简单说明需要的节点环境。
3. **核心实操**:
* 步骤一:基础操作(重命名 Key)。
* 步骤二:保留特定字段(Use Only Specific Fields)。
* 步骤三:保留字段的同时进行重命名(高级组合)。
4. **避坑指南**:针对 `Keep Only Those Fields` 选项的常见误解。
5. **FAQ**。
6. **总结**。
以下是生成的 HTML 文章内容:
兄弟们,我是 N8N 大学的主编。今天咱们聊聊 n8n 里那个最容易被低估,却也是数据清洗最猛的“瑞士军刀”—— Set (Edit Fields) 节点。

很多新手玩 n8n,用 Set 节点还停留在最原始的“赋值”阶段:比如把 A 字段的值复制给 B。但如果你仅仅是这样用,那你至少浪费了这个节点 80% 的功力。
在实战中,我们经常遇到这种场景:上游接口返回了 50 个字段,但我只需要发给钉钉机器人的只有 3 个;或者,返回的字段名是英文的 user_id,我想在日志里改成中文的“用户ID”方便查看。
如果你还在写一堆复杂的 JSON 代码或者拉一堆节点来处理,那今天这篇文章就是为你准备的。咱们不讲废话,直接上干货,教你如何用 Set 节点优雅地“保留特定字段”与“重命名 Key”。
场景一:字段名太丑?一键重命名 Key
有些 API 的设计者真的很“极客”,字段名起得又长又难记。比如微信回调里的 FromUserName,你想在 Excel 里看的时候改成“发信人”。
在 n8n 里,重命名其实就是“移动”数据。
- 在你的 Set (Edit Fields) 节点中,点击 Fields to Set 下方的“Add Field”。
- 在 Name 栏,输入你想要的新名字,比如:
发信人。 - 在 Value 栏,点击输入框右侧的加号,选择上游节点的数据,这里选
FromUserName。
这时候,Set 节点会保留原有的所有数据,并额外增加一个叫“发信人”的字段。但这还不够,我们通常希望把旧的 FromUserName 删掉,只留新的。
场景二:数据瘦身,只保留我想要的字段
这是 n8n 大学的编辑们在处理数据库查询结果时最常用的操作。查询结果往往包含 id, created_at, updated_at 等元数据,但你传给下个节点的可能只需要 title 和 content。
这时候,你需要打开 Set 节点的隐藏神技。
- 在节点设置面板中,找到 Options 点击展开。
- 勾选 Keep Only Those Fields (只保留这些字段)。注意:这是关键一步!
- 回到 Fields to Set 区域,把你想要保留的字段填进去。
举个例子:
Fields to Set:
- Name: title, Value: title (来自上游)
- Name: content, Value: content (来自上游)
勾选 Keep Only Those Fields 后,Run 一下,你会发现输出的 JSON 干净得像刚洗过的盘子,只剩下 title 和 content。
场景三:真正的实战:重命名 + 保留字段 (组合拳)
很多初学者在这里会卡住:如果我既想改名,又想只保留这几个改名后的字段,怎么操作?
逻辑其实很简单:Set 节点会把你填进去的字段,视为“最终要保留的字段”。
假设上游传来:product_name, price, stock。
我的需求是:只保留前两个,且把 product_name 改为 商品名。
操作步骤如下:
- Fields to Set 添加两条:
- Name:
商品名,Value:product_name - Name:
价格,Value:price
- Name:
- Options -> 勾选 Keep Only Those Fields。
看,我们甚至不需要去填 stock 这个字段。因为勾选了保留特定字段,Set 节点会自动把输出限制为我们在上面定义的那两个字段(商品名 和 价格),以及对应的值。
避坑指南:关于 Set 节点的两个“陷阱”
笔者在带新人时,发现大家在用 Set 节点最容易踩这两个坑:
1. 忘记勾选 “Keep Only Those Fields”
如果你只想保留特定字段,但没有勾选这个选项,那么 Set 节点只会添加新字段,而不会删除旧字段。结果就是你的数据包变得越来越臃肿。一定要记得勾选!
2. 别把“保留”和“新增”搞混了
在不勾选“保留特定字段”的情况下,Fields to Set 里的操作都是“新增”或“覆盖”。
如果你写 Name: old, Value: new。
结果是:输出里既有 old (值为 new),也有原本的 old (如果没覆盖的话,n8n 会自动处理,通常作为新值)。如果你理解了“重命名其实是新增字段”,逻辑就通了。
FAQ:你可能还想问
Q: Set 节点和 Switch 节点有什么区别?
A: Switch 是用来“分流”的,决定数据往哪个分支走;Set 是用来“整形”的,决定数据长什么样。它们经常配合使用。
Q: 我能不能用 Set 节点改变数据类型?
A: 可以。比如上游传来数字 123,你在 Value 栏填 "123",输出就会变成字符串。或者在 Value 栏使用表达式 {{ $now }} 来插入当前时间戳。
Q: 如果我想删除某个字段,用 Set 节点可以吗?
A: 可以,但比较绕。更推荐使用 Remove Fields 节点。如果非要用 Set,就勾选“Keep Only Those Fields”,然后把不想删除的字段填进去(反向操作)。
总结与资源
Set (Edit Fields) 节点是 n8n 数据流中的“整形师”。不要只把它当作简单的赋值工具。
记住 N8N 大学的口诀:“要改名,填 Name;要瘦身,勾选项”。掌握好这个节点,你的自动化流程将不再被杂乱的数据所困扰。
如果你在配置过程中遇到任何报错,欢迎在 N8N 大学官网留言,笔者会亲自为你解答。