Правила фильтрации

Синтаксис

{
    <поле>: {
        <оператор>: <значение>
    }
}
1
2
3
4
5

Примеры

{
	"title": {
		"_contains": "logexpert"
	}
}
1
2
3
4
5
{
	"owner": {
		"_eq": "$CURRENT_USER"
	}
}
1
2
3
4
5
{
	"datetime": {
		"_lte": "$NOW"
	}
}
1
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

Логические операторы

Вы можете задавать несколько правил, используя логические операторы _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

Динамические переменные

В дополнение к статическим значениям передаваемых в фильтр, вы так же можете использовать динамические значения используя следующие перемеренные:\

  • $CURRENT_USER — Первичный ключ аутентифицированного в данный момент пользователя
  • $CURRENT_ROLE — Первичный ключ роли для текущего аутентифицированного пользователя
  • $NOW — Текущее время
  • $NOW(<выражение>) - Текущее время плюс/минус заданное расстояние, например: $NOW(-1 year), $NOW(+2 hours)