使用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将这些列称为“多选”字样。字段类型。
答案 0 :(得分:3)
似乎airtable支持SEARCH
形式的indexOf
的js。来自文档:
SEARCH(find_string,within_string,position)
返回within_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`