Инициализация поддокументов моделей с Typegoose

Мы переносим наш проект с чистого Mongoose на Typegoose, в целом мы довольны, но есть одна проблема, которая нас всегда беспокоит. Допустим, у нас есть простая модель:

Теперь, когда мы хотим создать новый элемент, мы можем просто сделать:

Но когда мы добавляем поддокумент:

Инициализация становится:

Я знаю, что мы можем использовать Passthrough Class, но он говорит, что это не рекомендуется.

Есть идеи, как мы можем упростить создание?

class Animal {
  @prop()
  public name?: string;
}

const AnimanlModel = getModelForClass(Animal);
await AnimanlModel.create({ name: 'Kitty' });
class Animal {
  @prop()
  public name?: string;

  @prop()
  public properties?: Properties;
}

class Properties {
  @prop()
  public hasEaten?: boolean;
}
const props = new Properties();
props.hasEaten = true;
await AnimanlModel.create({ name: 'Kitty', properties: props });
Арсений
Вопрос задан22 января 2024 г.

1 Ответ

2
Ефрем
Ответ получен19 сентября 2024 г.

Ваш ответ

Загрузить файл.