Число (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 - Используйте автоинкремент для уникальных числовых идентификаторов