首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Airtable有时返回结果,有时不返回结果

Airtable有时返回结果,有时不返回结果
EN

Stack Overflow用户
提问于 2019-03-11 21:55:34
回答 1查看 95关注 0票数 1

我正在使用Node.js库与AirTable,官方js图书馆进行通信。我对filterByFormula有个问题。有时候,当我试图从AirTable中找到记录时,我不会得到结果,尽管我很确定应该会有一些结果。我的逻辑是,如果我找不到AirTable中的记录,就会创建一个新的记录。如果我找到了,我会更新现有的。这个逻辑导致输入两次相同条目的问题。

这是我的疑问:

代码语言:javascript
复制
getReservationByID: async (externalID) {
    let reservations = await calendarBase('Reservations').select({
      view: 'Main View',
      filterByFormula: `{External ID} = \"${externalID}\"`,
      maxRecords: 1,
    }).all();

    return (reservations.length > 0) ? reservations[0] : null;
},

这个函数是这样使用的:

代码语言:javascript
复制
let oldReservation = await getReservationByID(reservation.id);
if (!oldReservation) {
  createNewReservation(reservation);
} else {
  updateReservation(reservation);
}

正如您所看到的,如果AirTable存在,我必须从它获得记录,但是有时AirTable不是用给定的ID返回现有的记录,然后使用相同的外部ID得到重复的记录。我是做错了什么还是有什么我不知道的问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-12 21:45:18

我设法解决了这个问题。我已经从查询中删除了视图,现在一切都正常了。如果未包含任何视图,Airtable将搜索表中与您的公式匹配的所有记录。如果指定视图,Airtable将限制其搜索仅限于该视图,然后找到与您的公式匹配的所有记录。如果在您输入的“select”视图上有一个筛选器,在我的示例“主视图”中,则可能对您的脚本隐藏了某些记录。

我的新查询如下所示:

代码语言:javascript
复制
getReservationByID: async (externalID) {
    const reservations = await calendarBase('Reservations').select({
      filterByFormula: `{External ID} = \"${externalID}\"`,
      maxRecords: 1,
    }).all();

    return (reservations.length > 0) ? reservations[0] : null;
},
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55111003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档