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

Число (Number)

Поле типа Число используется для хранения числовых значений — целых и дробных чисел.

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

  • Тип данных: Числовое значение (integer, float, double)
  • Диапазон: От -9,007,199,254,740,991 до 9,007,199,254,740,991
  • Точность: До 15 значащих цифр
  • Поддержка отрицательных чисел: Да

Форматы отображения

Обычное число

Стандартное отображение числа без форматирования.

Число с разделителями

Отображение с разделителями тысяч: 1 000 000 или 1,000,000

Десятичное число

Фиксированное количество знаков после запятой: 123.45

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

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

  • Название поля: Отображаемое имя поля
  • Системное имя: Уникальный идентификатор для API
  • Описание: Подсказка для пользователей
  • Обязательное поле: Требовать заполнения
  • Уникальное значение: Запретить дублирование
  • Значение по умолчанию: Автоматически подставляемое значение
  • Минимальное значение: Нижняя граница допустимых значений
  • Максимальное значение: Верхняя граница допустимых значений
  • Количество знаков после запятой: Точность (0-10)
  • Формат отображения: Обычное, валюта, проценты

Валидация

Для числовых полей можно настроить:

  • Минимальное значение: Например, 0 для неотрицательных чисел
  • Максимальное значение: Например, 100 для процентов
  • Только целые числа: Запретить дробные значения
  • Положительные числа: Запретить отрицательные значения

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

Цена товара

{
"name": "price",
"type": "number",
"required": true,
"min": 0,
"precision": 2
}

Количество на складе

{
"name": "stock_quantity",
"type": "number",
"required": true,
"min": 0,
"precision": 0
}

Рейтинг

{
"name": "rating",
"type": "number",
"min": 0,
"max": 5,
"precision": 1
}

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

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

const record = await emd.database.collection('products').create({
price: 1299.99,
stock_quantity: 45,
rating: 4.5
});

Поиск с числовыми условиями

// Товары дороже 1000
const expensiveProducts = await emd.database.collection('products').find({
price: { $gt: 1000 }
});

// Товары в диапазоне цен
const products = await emd.database.collection('products').find({
price: { $gte: 500, $lte: 2000 }
});

Математические операции

// Увеличить цену на 10%
await emd.database.collection('products').update(recordId, {
$mul: { price: 1.1 }
});

// Уменьшить количество на 5
await emd.database.collection('products').update(recordId, {
$inc: { stock_quantity: -5 }
});

Операторы для числовых полей

  • $eq — равно
  • $ne — не равно
  • $gt — больше
  • $gte — больше или равно
  • $lt — меньше
  • $lte — меньше или равно
  • $in — входит в список значений
  • $nin — не входит в список значений

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

  • Используйте валидацию min/max для ограничения диапазона
  • Для денежных значений используйте тип Валюта
  • Для процентов используйте тип Проценты
  • Для целых чисел устанавливайте precision: 0
  • Используйте автоинкремент для уникальных числовых идентификаторов