Mongoose Schema
Как писалось ранее, Schema - "строго-типизированное" определение документа определенной коллекции.
Кроме определения типа данных определенного поля, Schema также позволяет установить следующие опции поля:
указать, обязательное поле для документа или нет (required)
задать значение по умолчанию (default)
если числовой тип данных или дата - задать минимальное и максимальное значения (min, max)
если срочный тип - задать приведения значения к нижнему/верхнему регистру перед сохранением (lowercase / uppercase)
создать кастомную функцию валидации поля (validate)
создать кастомные геттер и сеттер поля (get, set)
создать псевдонимы поля (alias)
задать значение поля, как уникальное всех документов коллекции (unique) и т. д.
Подробнее об опциях схем можно почитать здесь.
Пример монгус-схемы:
const { Schema } = require('mongoose');
const userSchema = new Schema({
first_name: String,
email: {
type: String,
required: true,
alias: 'login',
validate: (value) => value.includes('@'),
unique: true,
},
age: {
type: Number,
required: true,
min: 18,
max: 95,
},
last_name: {
type: String,
default: 'Ivanov',
get: (v) => v.toUpperCase(),
}
});
Last updated
Was this helpful?