Полное руководство по полям схемы Mongoose в TypeScript

Mongoose — это библиотека моделирования объектных данных (ODM) для MongoDB, предоставляющая простой способ определения схем для ваших данных. В этой статье мы рассмотрим различные методы определения полей в схеме Mongoose с использованием TypeScript. Мы предоставим примеры кода и пояснения для каждого метода, что позволит вам понять и эффективно использовать эти методы в ваших проектах TypeScript.

  1. Основные определения полей.
    Наиболее распространенный способ определения полей в схеме Mongoose — использование основных типов полей, предоставляемых Mongoose. Вот пример:
import { Schema, Types } from 'mongoose';
const userSchema = new Schema({
  name: String,
  age: Number,
  email: {
    type: String,
    unique: true,
  },
  createdAt: {
    type: Date,
    default: Date.now,
  },
});
  1. Типы настраиваемых полей.
    Mongoose позволяет определять типы настраиваемых полей путем расширения базовых типов, предоставляемых Mongoose. Это полезно, когда вам нужно определить поля с дополнительными свойствами или правилами проверки. Вот пример:
import { Schema, Types } from 'mongoose';
interface PhoneNumber {
  countryCode: string;
  number: string;
}
const userSchema = new Schema({
  name: String,
  age: Number,
  phoneNumber: {
    type: {
      countryCode: String,
      number: String,
    },
    validate: (phoneNumber: PhoneNumber) => {
      // Custom validation logic
      // ...
    },
  },
});
  1. Встроенные документы:
    Mongoose позволяет определять встроенные документы в вашей схеме. Встроенные документы полезны, когда вы хотите вложить связанные структуры данных. Вот пример:
import { Schema, Types } from 'mongoose';
const addressSchema = new Schema({
  street: String,
  city: String,
  country: String,
});
const userSchema = new Schema({
  name: String,
  age: Number,
  address: addressSchema,
});
  1. Массивы:
    Вы можете определить поля как массивы в схемах Mongoose. Это полезно, если вы хотите сохранить несколько значений одного типа. Вот пример:
import { Schema, Types } from 'mongoose';
const userSchema = new Schema({
  name: String,
  age: Number,
  emails: [String],
  friends: [{
    type: Types.ObjectId,
    ref: 'User',
  }],
});

В этой статье мы рассмотрели различные методы определения полей в схеме Mongoose с использованием TypeScript. Мы рассмотрели основные определения полей, типы настраиваемых полей, встроенные документы и массивы. Используя эти методы, вы можете эффективно определять поля в схемах Mongoose и работать с ними. Понимание этих концепций позволит вам создавать надежные и масштабируемые приложения TypeScript с помощью Mongoose.

Не забудьте ознакомиться с документацией Mongoose для получения более подробной информации о каждом методе и получения новейших функций и рекомендаций.