如何处理Airtable返回的JSON数据 重构格式后存入MongoDB数据库
Airtable API 返回关联字段格式转换实现方案
核心逻辑
Airtable 官方保证关联记录 ID 数组和对应的 lookup 字段数组的下标顺序完全一致,所以只需遍历数组下标,将同位置的 ID 和名称组合成对象即可完成转换。
完整实现代码(Node.js)
// 单条 Airtable 记录转换函数 function transformAirtableRecord(record) { const { id, fields, createdTime } = record; // 合并关联ID和对应的名称 const guests = fields.Guests.map((guestId, index) => { return { _id: guestId, name: fields['Name (from Guests)'][index] } }); // 组装成目标结构 return { id, Household: fields.Household, Guests: guests, createdTime } } // 批量处理从Airtable拉取的全部记录示例 const rawAirtableRecords = [/* 你从airtable.js拉取到的原始记录数组 */]; const transformedRecords = rawAirtableRecords.map(record => transformAirtableRecord(record)); // 后续直接把transformedRecords写入MongoDB即可
边界情况兼容处理
如果你的Airtable表中存在某条记录没有关联Guests的情况,可以加空值判断避免报错,修改转换函数即可:
function transformAirtableRecord(record) { const { id, fields, createdTime } = record; const guests = (fields.Guests || []).map((guestId, index) => { return { _id: guestId, name: (fields['Name (from Guests)'] || [])[index] || '' } }); return { id, Household: fields.Household || '', Guests: guests, createdTime } }
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

