#typescript #prisma
Вопрос:
Я написал эту функцию, которая фильтрует конец таблицы building
, при необходимости я могу передать Prisma.BuildingInclude
объект, чтобы вернуть один или несколько подобъектов.
async describeEntity(filter: Filter, include?: Prisma.BuildingInclude): Promise<CCResponse> {
try {
const entity = await this.prisma.building.findMany({
where: this.queryCondition(filter),
include,
});
return new CCResponse('OK', entity);
}
catch (err) {
console.log(err);
return new CCResponse('INTERNAL_ERROR', this.content['GeneralError']);
}
}
Проблема в том, что если я передам include
параметр, в ответе prisma у меня также будут поля building
. Как я могу вернуть только поля подобъекта, если include
параметр присутствует?
Ответ №1:
Вы можете заменить include
условие select
условием, чтобы решить эту проблему.
Например, чтобы найти много building
записей с одним и тем же where
условием, но возвращать только поля вложенных объектов нужной связи, запрос может выглядеть следующим образом
const entity = await this.prisma.building.findMany({
where: this.queryCondition(filter),
select: {
relationSubObjectOne: true, //change relationSubObjectOne to appropriate relation name..
relationSubObjectTwo: true, //change relationSubObjectTwo to appropriate relation name..
// ... other fields/subobjects you might be interested in.
},
});
Вы можете узнать об этом больше в подразделе Включить отношения и выбрать поля отношений статьи Выбор полей в документах Prisma.