You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据指定字段名查询获取Airtable中的对应记录

实现Airtable按指定字段值查询匹配记录的方法

你当前的代码仅能拉取对应表的全量数据,要实现按输入字段值筛选记录,需要在Airtable的API请求中加入filterByFormula查询参数,具体修改方法如下:

核心修改逻辑

Airtable的GET列表接口支持通过filterByFormula参数传入筛选公式,仅返回符合公式判断条件的记录,基础筛选公式格式为:

{你要筛选的字段名} = "查询值"
字段名必须用大括号包裹,字符串类型的查询值需要用双引号包裹,数值/布尔类型不需要额外包裹。

完整修改后的代码示例

const fetchData = async e => {
  e.preventDefault();
  // 这里替换为你实际的输入字段值,以及要筛选的Airtable字段名
  const searchField = "客户姓名"; // 替换为你要查询的Airtable字段名
  const searchValue = document.getElementById("search-input").value; // 替换为你的输入值获取逻辑

  // 构造筛选公式
  // 如果是数值类型字段,去掉searchValue外层的双引号即可
  const filterFormula = `{${searchField}} = "${searchValue}"`;
  // 编码公式避免URL特殊字符报错
  const encodedFilter = encodeURIComponent(filterFormula);

  fetch(`https://api.airtable.com/v0/${process.env.AIRTABLE_BASE_ID}/${process.env.AIRTABLE_TABLE_NAME}?filterByFormula=${encodedFilter}`, {
    method: 'GET',
    headers: {
      Accept: 'application/json',
      'Content-Type': 'application/json',
      Authorization: `Bearer ${process.env.API_KEY}`,
    },
  })
  .then(response => {
    if (response.ok) {
      return response.json();
    } else {
      throw new Error('Something went wrong');
    }
  })
  .then(rawResponse => {
    // rawResponse.records就是符合条件的记录列表
    console.log('匹配到的记录:', rawResponse.records);
  })
  .catch(error => {
    customToast.error('Something went wrong.');
    console.log('Error', error);
  });
};

额外说明

  • 如需模糊匹配,可将筛选公式替换为SEARCH("${searchValue}", {${searchField}}) > 0,即可返回字段内容包含查询值的所有记录
  • 单次API请求最多返回100条匹配记录,若匹配结果超过100条,可通过返回结果中的offset字段拼接下一次请求的offset参数拉取剩余数据
  • 该代码若直接运行在前端浏览器会暴露你的Airtable API密钥,存在数据被篡改/泄露的风险,建议将API请求放在后端服务中转

内容的提问来源于stack exchange,提问作者Hasham Minhas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:27:01