Перейти к основному содержимому

Булево (Boolean)

Поле типа Булево используется для хранения логических значений: истина (true) или ложь (false).

Основные характеристики

  • Тип данных: Логическое значение (boolean)
  • Возможные значения: true, false, null (если поле не обязательное)
  • Отображение: Чекбокс, переключатель (toggle), иконка

Варианты отображения

Чекбокс

Стандартный флажок для включения/выключения опции.

Переключатель (Toggle)

Современный UI-элемент в виде переключателя.

Иконка

Отображение статуса в виде иконки (✓ / ✗, 👁 / 👁‍🗨).

Настройки поля

При создании поля типа "Булево" доступны следующие настройки:

  • Название поля: Отображаемое имя поля
  • Системное имя: Уникальный идентификатор для API
  • Описание: Подсказка для пользователей
  • Значение по умолчанию: true, false или не задано
  • Стиль отображения: Чекбокс, переключатель, иконка

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

Активность записи

{
"name": "is_active",
"type": "boolean",
"default": true
}

Публикация статьи

{
"name": "is_published",
"type": "boolean",
"default": false
}

Подтверждение email

{
"name": "email_verified",
"type": "boolean",
"default": false
}

Наличие на складе

{
"name": "in_stock",
"type": "boolean",
"default": true
}

Работа через API

Создание записи

const record = await emd.database.collection('products').create({
name: 'Ноутбук Dell XPS 15',
is_active: true,
is_published: false,
in_stock: true
});

Поиск по булевому полю

// Найти все активные записи
const activeRecords = await emd.database.collection('products').find({
is_active: true
});

// Найти все неопубликованные записи
const drafts = await emd.database.collection('articles').find({
is_published: false
});

Обновление значения

// Опубликовать статью
await emd.database.collection('articles').update(recordId, {
is_published: true
});

// Деактивировать товар
await emd.database.collection('products').update(recordId, {
is_active: false
});

Переключение значения

// Получить текущее значение и инвертировать его
const record = await emd.database.collection('products').get(recordId);
await emd.database.collection('products').update(recordId, {
is_active: !record.is_active
});

Операторы для булевых полей

  • $eq — равно (true или false)
  • $ne — не равно
  • $exists — проверка наличия значения

Типичные сценарии использования

Флаги состояния

  • is_active — активность записи
  • is_deleted — мягкое удаление
  • is_featured — избранное/рекомендуемое
  • is_new — новинка

Права и разрешения

  • can_edit — возможность редактирования
  • can_delete — возможность удаления
  • is_admin — административные права

Статусы верификации

  • email_verified — подтвержден email
  • phone_verified — подтвержден телефон
  • is_verified — верифицированный пользователь

Настройки и опции

  • notifications_enabled — включены уведомления
  • is_public — публичная видимость
  • auto_renew — автоматическое продление

Рекомендации

  • Используйте понятные названия полей с префиксами is_, has_, can_
  • Устанавливайте значение по умолчанию для обязательных полей
  • Для сложных статусов используйте тип Список вместо множества булевых полей
  • Избегайте двойного отрицания в названиях (например, is_not_active)
  • Документируйте значение true и false для каждого поля

Отличие от других типов

  • Boolean vs Select: Используйте Boolean для бинарных состояний, Select — для множественного выбора
  • Boolean vs Number: Boolean для логики (да/нет), Number для количественных значений (0/1/2/...)