Почему не могу получить _id?

У меня 2 модели данных:

ServiceCategoryModel (категории услуг)
@Schema({ timestamps: true })
export class ServiceCategory {
  @Prop({ required: true })
  name: string;

  @Prop({ required: true, type: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Service' }] })
  services: Service[];
}


ServiceModel(услуги)
@Schema({ timestamps: true })
export class Service {
  @Prop({ required: true })
  name: string;

  @Prop({ required: true })
  price: number;

  @Prop({ required: true })
  duration: number;

  @Prop({ required: true, type: [{ type: mongoose.Schema.Types.ObjectId, ref: 'ServiceCategory' }] })
  category: ServiceCategory;
}


При удалении категории услуг, я получаю и записываю услуги которые входили в эту категорию.
Затем через map хочу перебрать объекты и забрать айдишники (_id), чтобы потом по id удалить эти объекты.
Но вот ниже код, первая консоль отрабатывает, а во второй ошибка.

const services = await this.ServiceCategoryModel.findById(id).populate('services').exec();

    services.services.map((item) => {
      console.log(item);
      console.log(item.id); //тут ругается
    });


Вопрос ,как выдернуть айдишники?

628f7af1e8230109191613.png
628f7af91f4f3095497081.png
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
lssssssssssl
@lssssssssssl
Задайте item тип ServiceDocument

Перебирать массив сервисов не нужно, просто уберите .populate('services') и используйте serviceModel.deleteMany(), который принимает массив айдишников для удаления множества документов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы