我正在使用 Node.js 库与官方 js 库AirTable 进行通信。我遇到了问题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 获取记录,但有时 AirTable 没有返回具有给定 ID 的现有记录,然后我得到具有相同外部 ID 的重复记录。我做错了什么还是有一些我不知道的问题?