Правила фильтрации
Синтаксис
- Поле - любое доступное корневое поле, связанное поле или логический оператор
- Оператор - любой доступный логический оператор с символом подчеркивания
- Значение - любое допустимое статическое значение или динамическая переменная
{
<поле>: {
<оператор>: <значение>
}
}
1
2
3
4
5
2
3
4
5
Примеры
{
"title": {
"_contains": "logexpert"
}
}
1
2
3
4
5
2
3
4
5
{
"owner": {
"_eq": "$CURRENT_USER"
}
}
1
2
3
4
5
2
3
4
5
{
"datetime": {
"_lte": "$NOW"
}
}
1
2
3
4
5
2
3
4
5
Операторы
| Оператор | Описание |
|---|---|
_eq | Равно значению |
_neq | Неравно значению |
_lt | Меньше |
_lte | Меньше либо равно |
_gt | Больше |
_gte | Больше либо равно |
_in | Совпадает с любым из значений |
_nin | Не совпадает ни с одним из значений |
_null | Является null |
_nnull | Не является null |
_contains | Содержит подстроку |
_ncontains | Не содержит подстроку |
_starts_with | Начинается с |
_nstarts_with | Не начинается с |
_ends_with | Заканчивается на |
_nends_with | Не заканчивается на |
_between | Находится между двумя значениями (включительно) |
_nbetween | Не находится между двумя значениями (включительно) |
_empty | Пустое (null or falsy) |
_nempty | Не пустое (null or falsy) |
Связанные данные
Вы можете выбирать значения связанных объектов. Например, если в вашем объекте есть связанное поле авторов Many-To-One, вы можете установить правило для поля author.name, используя следующий синтаксис:
{
"author": {
"name": {
"_eq": "Венгер Сергей"
}
}
}
1
2
3
4
5
6
7
2
3
4
5
6
7
Логические операторы
Вы можете задавать несколько правил, используя логические операторы _and и _or. Каждый из этих операторов содержит массив правил, позволяя делать более комплексную фильтрацию.
{
"_or": [
{
"_and": [
{
"owner": {
"_eq": "$CURRENT_USER"
}
},
{
"status": {
"_in": ["published", "draft"]
}
}
]
},
{
"_and": [
{
"owner": {
"_neq": "$CURRENT_USER"
}
},
{
"status": {
"_in": ["published"]
}
}
]
}
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Динамические переменные
В дополнение к статическим значениям передаваемых в фильтр, вы так же можете использовать динамические значения используя следующие перемеренные:\
$CURRENT_USER— Первичный ключ аутентифицированного в данный момент пользователя$CURRENT_ROLE— Первичный ключ роли для текущего аутентифицированного пользователя$NOW— Текущее время$NOW(<выражение>)- Текущее время плюс/минус заданное расстояние, например:$NOW(-1 year),$NOW(+2 hours)