Запросы к коллекции
Запрос отвечает на вопрос об одной коллекции — есть ли подходящие записи, сколько их, какие ключи или записи подходят и каковы итоги по группам. Быстрые условия находят нужные записи сразу, без чтения всей коллекции (см. Производительность).
Один и тот же конструктор доступен на вкладке Запрос страницы «Данные» и в операции Запрос ноды «Данные проекта».
Режимы
| Режим | Что возвращает |
|---|---|
| Проверка наличия | Есть ли хотя бы одна подходящая запись |
| Количество | Число подходящих записей |
| Ключи | Ключи подходящих записей, постранично |
| Записи | Подходящие записи, постранично |
| Итоги по группам | Число записей и выбранные метрики для каждой группы |
Выбирайте самый лёгкий режим, который отвечает на вопрос: для проверки существования не нужно запрашивать сами записи.
Условия
Поля
Условия можно задавать по полям платформы и по объявленным для коллекции полям для фильтров.
| Поле платформы | Значение |
|---|---|
| Ключ | Ключ записи |
| Создана | Время последнего сохранения записи; обновляется при каждом сохранении |
| Обновлена | Время последнего изменения записи |
| Кем занята | Кто последним сохранил или занял запись |
| Удалится | Время истечения срока хранения |
Поле учитывается только у записей, сохранённых после его добавления; старые записи считаются незаполненными, даже если путь уже есть в JSON: их находят Не заполнено, Не равно и Не входит в список, а в итогах они попадают в группу null. Подробнее — поля для фильтров.
Операторы
Доступные операторы зависят от типа поля:
| Оператор | Текст | Да/нет | Число | Дата и время |
|---|---|---|---|---|
| Равно | ✓ | ✓ | ✓ | ✓ |
| Не равно | ✓ | ✓ | ✓ | ✓ |
| Входит в список | ✓ | ✓ | ✓ | ✓ |
| Не входит в список | ✓ | ✓ | ✓ | ✓ |
| Не заполнено | ✓ | ✓ | ✓ | ✓ |
| Заполнено | ✓ | ✓ | ✓ | ✓ |
| Начинается с | ✓ | |||
| Содержит | ✓ | |||
| Между | ✓ | ✓ | ||
| Больше, Больше или равно, Меньше, Меньше или равно | ✓ | ✓ |
- Текст сравнивается точно, с учётом регистра.
- Не заполнено находит отсутствующее значение и
null; Заполнено — наоборот. Эти операторы не требуют значения. - Списки принимают до 20 значений; Между включает границы, причём «От» должно быть не больше «До».
- Одно значение условия — не длиннее 1024 байт.
Значения дат
| Способ | Значение |
|---|---|
| Точное | Фиксированные дата и время |
| Относительное | Положительное целое число дней или часов назад от времени запуска запроса |
| Переменная | Значение из процесса; доступно только в ноде |
Относительное значение доступно для Равно, Не равно и сравнений, но не для Между и списков.
Группы «И» и «ИЛИ»
И требует выполнения всех условий группы, ИЛИ — хотя бы одного. Всего допускается до 10 условий, а группы можно вложить только на один уровень; в каждой группе должно быть хотя бы одно условие. Если условий нет, запрос охватывает всю коллекцию.
Начало ключа
Начало ключа — самый быстрый способ сузить запрос. Например, ключи вида 2026-09-28:order-1041 позволяют выбрать записи за месяц префиксом 2026-09- или за день префиксом 2026-09-28:.
С префиксом в режимах Ключи и Записи сортируйте по ключу по возрастанию и не добавляйте другие условия по Ключу — иначе запрос может просмотреть всю коллекцию.
Сортировка и страницы
В режимах Ключи и Записи сортировка по умолчанию — по ключу; размер страницы — от 1 до 1000 записей, по умолчанию 100. В режиме Записи можно вернуть до 20 любых путей внутри значения; без списка путей возвращается запись целиком.
Следующая страница доступна только при сортировке по ключу по возрастанию. При другой сортировке сузьте условия или увеличьте размер страницы. В режиме Записи условие Между по числовому полю без явной сортировки и префикса упорядочивает записи по этому полю, но следующую страницу получить нельзя.
Сортировка или условие по полям Обновлена, Кем занята и Удалится требует полного чтения; режим Записи с такой сортировкой или условиями не выполняется.
Итоги по группам
Выберите поле группировки и до 6 метрик. Группы идут по возрастанию; незаполненное значение образует первую группу null, в том числе для записей, сохранённых до добавления поля.
| Метрика | Нужно поле | Тип поля |
|---|---|---|
| Количество | Нет | — |
| Сумма | Да | Число |
| Среднее | Да | Число |
| Минимум | Да | Число, дата и время |
| Максимум | Да | Число, дата и время |
Для каждой группы возвращается число записей независимо от выбранных метрик. Итоги всегда читают записи по одной; задайте Начало ключа, чтобы ограничить чтение. Если групп слишком много, запрос завершится ошибкой — выберите поле с меньшим числом разных значений.
Производительность
Быстрее всего сужают поиск Начало ключа, Равно/сравнения/Между по полю коллекции, Равно по Ключу и Равно/сравнения/Между по Создана. Полное чтение обычно требуют Не равно, Начинается с, Содержит, списки, ИЛИ, условия или сортировка по Обновлена, Кем занята или Удалится, а также группировка.
В режимах Ключи, Записи и Итоги по группам списки и любое ИЛИ требуют полного чтения. В Проверке наличия быстрые условия ИЛИ проверяются отдельно; в Количестве быстрое ИЛИ из равенств по одному полю коллекции эквивалентно Входит в список, а прочие варианты ИЛИ требуют полного чтения.
Конструктор отмечает медленные условия и предупреждает перед запуском. Запрос в режиме Записи, требующий полного чтения, не выполняется.
| Где выполняется | Время | Предел чтения: наличие, количество, ключи | Предел чтения: итоги |
|---|---|---|---|
| Страница «Данные» | 20 секунд | 800 000 записей | 400 000 записей |
| Нода | 5 секунд | 200 000 записей | 100 000 записей |
Пределы касаются только запросов, которые читают записи одну за другой; такой запрос отклоняется до начала чтения, если ему пришлось бы прочитать больше предела. Быстрых запросов пределы не касаются. Чтобы ускорить запрос:
- используйте Равно или сравнение по объявленному полю;
- задайте Начало ключа;
- разделите ИЛИ на отдельные запросы;
- сортируйте по ключу, Создана или полю коллекции;
- храните производное значение, например
customer.domain, отдельным полем вместо поиска через Содержит.
Количество
Количество иногда может быть приблизительным, но не ниже истинного (примерно 0 означает отсутствие записей); Проверка наличия всегда точна.
Запрос на странице и в ноде
В ноде можно подставлять переменные в значения условий, Начало ключа, Курсор страницы и Записей на странице. Для следующей страницы передайте nextCursor из предыдущего результата.
Для ноды действуют 5 секунд и меньшие пределы чтения, указанные выше; подробности — в описании ноды «Данные проекта».
Примеры
Для примеров до сохранения заказов объявлены поля status (текст), amount (число), paidAt (дата и время) и customer.email (текст).
{
"status": "paid",
"amount": 1500,
"paidAt": "2026-09-28T10:15:00Z",
"customer": { "email": "anna@example.com" }
}
Оплаченные заказы за последние 7 дней: status Равно paid и paidAt Больше или равно 7 дням назад; режим Записи, сортировка по ключу.
Сумма по статусам за сентябрь: префикс 2026-09-, группировка по status, метрики Количество и Сумма по amount.
Есть ли заказ с заданным email: customer.email Равно переменной процесса, режим Проверка наличия в ноде.