Операторы оценочного запроса в MongoDB

В этой небольшой заметке мы рассмотрим операторы оценочного запроса и примеры их использования.

Вышеупомянутые операторы позволяют выполнять оценку запроса. Вот их разновидности:

  • $regex (позволит определить regex-выражения в запросе);
  • $text (полезен при работе с индексами);
  • $jsonSchema (проверяет данные по схеме);
  • $expr;
  • $mod ( { field: { $mod: [ divisor, remainder ] } }).

Пример использования

Что происходит в коде выше: - мы задействуем $regex, чтобы найти покемонов с "pi" в именах; - создаем валидатор во время создания коллекции с такими параметрами, как имя, тип и уровень; - создаем простую схему для нашей коллекции покемонов посредством $jsonSchema; - используем $mod для модификации поля с числом; - получаем покемонов, уровень которых делится на 5.

$expr

В самом начале мы намеренно пропустили оператор $expr -- это особый оператор, который помогает применять в запросе выражения агрегирования. Также его можно использовать в целях сравнения 2-х полей. К примеру, можно сравнить уровень и поле защиты в коллекции исследуемых покемонов.

Также существует оператор $cond -- он помогает создавать условия (if, then, else).

Источник: https://dev.to/paras594/learn-mongodb-query-documents-ii-2jgk.