4

使用 airtable api 的 filterByFormula 方法,我可以查询和选择包含一个特定项目(字符串)的记录。但是,此查询仅返回仅包含该特定字符串的记录。

在此处搜索 airtable api 公式文档: https ://support.airtable.com/hc/en-us/articles/203255215-Formula-Field-Reference 没有答案。

是)我有的:

base('Table').select({
    view: 'Main View',
    filterByFormula: `Column = "${myFilter}"`
}).firstPage(function(err, records) {
    if (err) { console.error(err); reject( err ); }

    records.forEach(function(record) {
        console.log(record.get('Another Column'));

    });

同样,这将返回仅具有 myFilter 的记录,而不是在给定列中包含任何附加值的记录。

编辑:airtable 将这些列称为“多选”字段类型。

4

1 回答 1

9

看来 airtable 支持 js 等价indexOfSEARCH. 从文档:

SEARCH(find_string, inside_string, position)
返回在 inside_string 中第一次出现 find_string 的索引,从 position 开始。位置默认为 0。

因此,我们可以使用以下作为我们的搜索过滤器值

filterByFormula: `SEARCH("${myFilter}", Column) >= 0`

这将搜索我们Column的存在myFilter并返回任何myFilter位于Column.

注意:可能值得提醒的是,您的myFilter属性可能最好具有至少 2 的最小字符数以提高性能。文档也没有指定不区分大小写的选项,因此如果您想返回结果而不考虑大小写字符,您可能希望将两者都包装在一个函数Column"${myFilter}"LOWER()例如

filterByFormula: `SEARCH(LOWER("${myFilter}"), LOWER(Column)) >= 0`
于 2017-02-24T02:48:03.183 回答