filter()

仅匹配满足过滤器条件的行。

尽管filter()函数是一种通用的筛选方式,但为了代码的可读性和维护性,官方建议优先使用特定的筛选方法,以利用更简洁和直观的筛选语法。 例如,使用eq()gt()lt()等特定的筛选方法,可以使查询更加清晰和易于理解。

filter() 期望您使用原始的 PostgREST语法 来指定过滤器的值。

1.filter('id', 'in', '(5,6,7)')  // Use `()` for `in` filter
2.filter('arraycol', 'cs', '{"a","b"}')  // Use `cs` for `contains()`, `{}` for array values

案例教程

案例1 (和select一起使用)#

1create table
2  countries (id int8 primary key, name text);
3
4insert into
5  countries (id, name)
6values
7  (1, 'Afghanistan'),
8  (2, 'Albania'),
9  (3, 'Algeria');

案例2 (在外部表上)#

1create table
2  countries (id int8 primary key, name text);
3create table
4  cities (
5    id int8 primary key,
6    country_id int8 not null references countries,
7    name text
8  );
9
10insert into
11  countries (id, name)
12values
13  (1, 'Germany'),
14  (2, 'Indonesia');
15insert into
16  cities (id, country_id, name)
17values
18  (1, 2, 'Bali'),
19  (2, 1, 'Munich');

参数说明

  • 列(column)[必要参数]
    string类型

    要过滤的列

  • 操作符(operator)[必要参数]
    string类型

    用来过滤的操作符,遵循PostgREST的语法

  • 值(value)[必要参数]
    任意类型

    用来过滤的值,遵循PostgREST的语法