Гнездо JS со схемой mon goose, интерфейсом и вопросом о подходе к вопросу - PullRequest
0 голосов
/ 21 апреля 2020

Я новичок в гнезде JS и mongoDB, и мне не ясно, зачем нам объявлять DTO, схему и интерфейс для каждой коллекции, которую мы хотим сохранить в нашей mongoDB. IE. У меня есть коллекция (к сожалению, я назвал ее collection, но это не имеет значения), и это мой DTO:

export class CollectionDto {
  readonly description: string;
  readonly name: string;
  readonly expiration: Date;
}

интерфейс:

import { Document } from 'mongoose';

export interface Collection extends Document {
  readonly description: string;
  readonly name: string;
  readonly expiration: Date;
}

и схема:

import * as mongoose from 'mongoose';

export const CollectionSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true,
  },
  description: {
    type: String,
    required: false,
  },
  expiration: {
    type: String,
    required: true,
  }
});

Я сомневаюсь, что нам действительно нужно целых три объекта с почти одинаковым содержанием? Это выглядит странно на первый взгляд.

1 Ответ

0 голосов
/ 21 апреля 2020

Вы не можете думать о нем как о реальном объекте, но вместо поля в базе данных.

Хотя в действительности все они являются свойствами, заключенными в конструктор mon goose .Schema.

...