프리즘 유형 스크립트 안에 조항이 포함되어 있습니까?
프리즈마를 통해 데이터베이스(Postgres)를 조회하려고 합니다. 나의 질문은
const products = await prisma.products.findMany({
where: { category: ProductsCategoryEnum[category] },
include: {
vehicles: {
include: {
manufacturers: { name: { in: { manufacturers.map(item => `"${item}"`) } } },
},
},
},
});
오류 메시지는 다음과 같습니다.
'{name: {in: {manufacturers: string; "": any; }; }; }' 유형은 'boolean | manufacturersArgs'에 할당할 수 없습니다. 개체 리터럴은 알려진 속성만 지정할 수 있으며 'name'은(는) 'manufacturersArgs' 유형에 없습니다.ts(2322)
제조업체는 필드를 가지고 있고 고유합니다. 저는 이것이 왜 작동하지 않는지 또는 데이터베이스를 쿼리할 수 있도록 이 코드를 어떻게 업데이트할 수 있는지 잘 모르겠습니다. 그것은 마치 내가 프리즈마 논쟁에 가치를 던져넣어야 하는 것과 같다.
TypeScript 오류는 매우 자명합니다. 속성이 에 존재하지 않습니다. 내보낸 Prisma Client는 필터링할 때 속성의 역할과 존재하지 않는 속성을 잘 알려줍니다.
중첩 필터를 수행하려는 경우 대신 를 사용해야 합니다.
설명서:
쿼리는 다음과 같습니다.
const products = await prisma.products.findMany({
where: { category: ProductsCategoryEnum[category] },
select: {
// also need to select any other fields you need here
vehicles: {
// Updated this
select: { manufacturers: true },
// Updated this to add an explicit "where" clause
where: {
manufacturers: { name: { in: { manufacturers.map(item => `"${item}"`) } } },
},
},
},
});
최종 코드는 궁극적으로 당신의 프리즈마 스키마에 달려 있다. VS Code와 같은 편집기를 사용하는 경우, Prisma Client의 TypeScript 정의에 Intelliense를 제공해야 합니다. 이를 사용하여 전체 Prisma 클라이언트를 탐색하고 사용 가능한 것과 사용 불가능한 것을 정확하게 기반으로 쿼리를 구성할 수 있습니다. VS 코드에서 [Windows] 또는 [macOS] 명령을 누른 상태에서 를 클릭합니다. 이렇게 하면 전체 Prisma 클라이언트를 탐색하고 쿼리를 구성할 수 있습니다!
키워드가 안 맞아요. 배열에서 항목을 찾는 데 사용합니다. 요구 사항에 따라 사용할 수도 있습니다.
hasSome: manufacturers.map(item => `"${item}"`),
봐
'개발하자' 카테고리의 다른 글
플러터에서 아이콘의 무게/대담함(FontWeight) 증가/구성 방법 (0) | 2023.09.03 |
---|---|
타이프스크립트 인터페이스에서 사용할 수 있도록 구성요소 유형을 가져오는 방법 - Vue 3 (0) | 2023.09.03 |
형식 스크립트, 자동으로 모든 약속 반환 기능 호출 대기 (0) | 2023.09.02 |
FastAPI를 사용하여 쿼리 매개 변수의 목록 필드를 사용하도록 Swagger UI를 설정하는 방법은 무엇입니까? (0) | 2023.09.01 |
테라폼 리소스에 사용되기 전에 파일에 값을 삽입하는 것이 가능합니까? (0) | 2023.09.01 |