gpt4 book ai didi

node.js - Airtable 有时返回结果有时不返回

转载 作者:太空宇宙 更新时间:2023-11-03 23:16:16 24 4
gpt4 key购买 nike

我正在使用 Node.js 库与 AirTable 进行通信,official js library 。我在 filterByFormula 方面遇到问题。有时,当我尝试从 AirTable 查找记录时,尽管我很确定应该有一些结果,但我没有得到结果。我的逻辑是这样的,如果我在 AirTable 中找不到该记录,我会创建一个新记录。如果我找到它,我将更新现有的。此逻辑会导致相同条目输入两次的问题。

这是我的查询:

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;
},

这个函数的使用方式是这样的:

let oldReservation = await getReservationByID(reservation.id);
if (!oldReservation) {
createNewReservation(reservation);
} else {
updateReservation(reservation);
}

如您所见,对我来说,从 AirTable 获取记录(如果存在)至关重要,但有时 AirTable 不会返回具有给定 ID 的现有记录,然后我会得到具有相同外部 ID 的重复记录。我做错了什么还是有一些我不知道的问题?

最佳答案

我已经成功解决了这个问题。我已从查询中删除了 View ,现在一切正常。如果不包含 View ,Airtable 将搜索表中与您的公式匹配的所有记录。如果您指定 View ,Airtable 会将其搜索限制为仅该 View ,然后查找与您的公式匹配的所有记录。如果您在选择的 View 上有一个过滤器(在我的例子中为“主视图”),那么您可能会在脚本中隐藏某些记录。

我的新查询如下所示:

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

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

关于node.js - Airtable 有时返回结果有时不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55111003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com