Фильтры в Blank предназначены для определения заранее заданных критериев поиска объектов в Store. В основном фильтры используются в веб-приложении, поэтому кроме запроса к БД в фильтрах настраивается его внешний вид. Однако, при запросах Find через API также можно использовать названия фильтров и передавать их значения.
Пример для создания фильтра по владельцу объектов:
"ownerFilter": {
//Вид фильтра в интерфейсе веб-приложения
"label": "Владелец",
"display": "searchBox",
"store": "users",
"searchBy": ["name"],
"multi": true,
"filterBy": "_id",
//Запрос к БД
"query": { "_ownerId": { "$in": "$value" } },
}
Если используются несколько фильтров, их запросы объединяются через оператор $and:
"query": { "$and": [ Filter1Query, Filter2Query, ..., FilterNQuery ] },
query
funсtion ($value) {}:MongoQuery
Функция, принимающая на вход значение фильтра в виде переменной $value
и возвращающая запрос в формате
MongoDB Query.
"query": ($value) => {
if ($value) {
return { orderState: { $in: $value } };
}
}
MongoQuery
Вариант настройки непосредственно через MongoDB Query,
в котором в значении одного или нескольких условий указано "$value"
.
Пример:
"query": { "_ownerId": { "$in": "$value" } },
Blank заменит все вхождения "$value"
на значения фильтра.