Объект FactQuery
предназначен для выполнения запросов к базе фактов. База фактов представляет собой коллекцию записей, где каждая запись (факт) имеет следующие поля:
select(fields)
Задает список полей из базы фактов, значения которых следует вернуть в результате запроса. По умолчанию возвращаются поля context
, name
и value
.
Аргументы: fields
— строка с перечислением полей через запятую или коллекция полей, которые необходимо вернуть.
Пример использования:
$facts = fact.query().select("botId").rows();
// Возвращает только поле botId для всех найденных фактов.
where(field, operator, value)
Добавляет условие поиска для фильтрации фактов. Несколько вызовов объединяются по логическому «И». Эквивалентен andWhere
.
Аргументы:
field
— название поля, к которому применяется условие.operator
— оператор сравнения (например, "="
, "~"
, "in"
, см. доступные операторы).value
— значение, с которым сравнивается поле.Пример использования:
$facts = fact.query()
.where("context", "~", "^.*example.*$")
.rows();
// Ищет факты, где поле "context" содержит подстроку "example".
orWhere(field, operator, value)
Добавляет условие поиска, объединенное с предыдущими по логическому «ИЛИ». Должно выполняться хотя бы одно из условий.
Аргументы:
field
— название поля, к которому применяется условие.operator
— оператор сравнения (например, "="
, "~"
, "in"
, см. доступные операторы).value
— значение, с которым сравнивается поле.Пример использования:
$facts = fact.query()
.where("context", "=", "test")
.orWhere("name", "=", "example")
.rows();
// Ищет факты, у которых "context" равно "test" или "name" равно "example".