prisma-client-api-model-queries

작성자: prisma

모델 쿼리. 이 Prisma 기능을 사용할 때 참조하세요.

npx skills add https://github.com/prisma/cursor-plugin --skill prisma-client-api-model-queries

Model Queries

CRUD operations for your Prisma models.

Read Operations

findUnique

Find a single record by unique field:

const user = await prisma.user.findUnique({
  where: { id: 1 }
})

const user = await prisma.user.findUnique({
  where: { email: 'alice@prisma.io' }
})

With composite unique key

// Model with @@unique([firstName, lastName])
const user = await prisma.user.findUnique({
  where: {
    firstName_lastName: {
      firstName: 'Alice',
      lastName: 'Smith'
    }
  }
})

findUniqueOrThrow

Same as findUnique but throws if not found:

const user = await prisma.user.findUniqueOrThrow({
  where: { id: 1 }
})
// Throws PrismaClientKnownRequestError if not found

findFirst

Find first matching record:

const user = await prisma.user.findFirst({
  where: { role: 'ADMIN' },
  orderBy: { createdAt: 'desc' }
})

findFirstOrThrow

const user = await prisma.user.findFirstOrThrow({
  where: { role: 'ADMIN' }
})

findMany

Find multiple records:

const users = await prisma.user.findMany({
  where: { role: 'USER' },
  orderBy: { name: 'asc' },
  take: 10,
  skip: 0
})

Create Operations

create

Create a single record:

const user = await prisma.user.create({
  data: {
    email: 'alice@prisma.io',
    name: 'Alice'
  }
})

With relations

const user = await prisma.user.create({
  data: {
    email: 'alice@prisma.io',
    posts: {
      create: [
        { title: 'First Post' },
        { title: 'Second Post' }
      ]
    }
  },
  include: { posts: true }
})

createMany

Create multiple records:

const result = await prisma.user.createMany({
  data: [
    { email: 'alice@prisma.io', name: 'Alice' },
    { email: 'bob@prisma.io', name: 'Bob' }
  ],
  skipDuplicates: true  // Skip records with duplicate unique fields
})
// Returns { count: 2 }

createManyAndReturn

Create multiple and return them:

const users = await prisma.user.createManyAndReturn({
  data: [
    { email: 'alice@prisma.io', name: 'Alice' },
    { email: 'bob@prisma.io', name: 'Bob' }
  ]
})
// Returns array of created users

Update Operations

update

Update a single record:

const user = await prisma.user.update({
  where: { id: 1 },
  data: { name: 'Alice Smith' }
})

Atomic operations

const post = await prisma.post.update({
  where: { id: 1 },
  data: {
    views: { increment: 1 },
    likes: { decrement: 1 },
    score: { multiply: 2 },
    rating: { divide: 2 },
    version: { set: 5 }
  }
})

updateMany

Update multiple records:

const result = await prisma.user.updateMany({
  where: { role: 'USER' },
  data: { verified: true }
})
// Returns { count: 42 }

updateManyAndReturn

const users = await prisma.user.updateManyAndReturn({
  where: { role: 'USER' },
  data: { verified: true }
})
// Returns array of updated users

upsert

Update or create:

const user = await prisma.user.upsert({
  where: { email: 'alice@prisma.io' },
  update: { name: 'Alice Smith' },
  create: { email: 'alice@prisma.io', name: 'Alice' }
})

Delete Operations

delete

Delete a single record:

const user = await prisma.user.delete({
  where: { id: 1 }
})
// Returns deleted record

deleteMany

Delete multiple records:

const result = await prisma.user.deleteMany({
  where: { role: 'GUEST' }
})
// Returns { count: 5 }

// Delete all
const result = await prisma.user.deleteMany({})

Aggregation Operations

count

const count = await prisma.user.count({
  where: { role: 'ADMIN' }
})

aggregate

const result = await prisma.post.aggregate({
  _avg: { views: true },
  _sum: { views: true },
  _min: { views: true },
  _max: { views: true },
  _count: { _all: true }
})

groupBy

const groups = await prisma.user.groupBy({
  by: ['country'],
  _count: { _all: true },
  _avg: { age: true },
  having: {
    age: { _avg: { gt: 30 } }
  }
})

Return Types

MethodReturns
findUniqueRecord | null
findUniqueOrThrowRecord (throws if not found)
findFirstRecord | null
findFirstOrThrowRecord (throws if not found)
findManyRecord[]
createRecord
createMany{ count: number }
createManyAndReturnRecord[]
updateRecord
updateMany{ count: number }
deleteRecord
deleteMany{ count: number }
countnumber
aggregateAggregate result
groupByGroup result[]

prisma의 다른 스킬

prisma-cli-migrate-reset
prisma
prisma 마이그레이션 리셋
official
prisma-cli-validate
prisma
prisma 검증. 이 Prisma 기능을 사용할 때 참조하세요.
official
prisma-next-extension-upgrade
prisma
Upgrade Prisma Next in your extension. Bumps every `@prisma-next/*` dependency to the requested target (or npm `latest`), runs the per-transition upgrade…
official
adr-review
prisma
하나 이상의 ADR을 새로운 시각으로(사전 맥락이 없는 팀원으로서) 검토하고, 서사 및 구조적 문제를 식별한 후 재작성합니다. 다음과 같은 경우에 사용하세요…
official
prisma-next-upgrade
prisma
Upgrade Prisma Next in your app. Bumps every `@prisma-next/*` dependency from the version pinned in the lockfile to the requested target (or npm `latest`),…
official
prisma-cli
prisma
Prisma CLI 명령어, 옵션, 워크플로우에 대한 완전한 참조로, 설정, 마이그레이션, 데이터베이스 작업 전반을 다룹니다. 우선순위별로 정리된 20개 이상의 명령어를 포함합니다: 설정(init), 생성(generate), 개발(dev), 데이터베이스 작업(db pull/push/seed/execute), 마이그레이션(migrate dev/deploy/reset/status/diff/resolve). Prisma 7.x 변경 사항을 포함합니다: 새로운 prisma.config.ts 설정 파일, 제거된 플래그(--skip-generate, --skip-seed, --schema, --url), 명시적...
official
prisma-client-api
prisma
Prisma Client API 전체 참조: 모델 쿼리, CRUD 작업, 필터링, 관계 및 트랜잭션. findUnique, findMany, create, update, delete, upsert 및 반환 변형이 있는 대량 작업을 포함한 17가지 모델 쿼리 메서드를 다룹니다. select, include, omit, orderBy, take, skip, cursor 및 distinct를 포함한 결과 형태를 지정하는 쿼리 옵션을 제공합니다. equals, in, contains, startsWith, lt, gt와 같은 스칼라 및 논리 필터 연산자와 some,...을 포함한 관계 필터를 포함합니다.
official
prisma-compute
prisma
Prisma Compute deployment and hosting guide. Use whenever the user mentions Prisma Compute, `prisma.compute.ts`, `defineComputeConfig`, deploying or hosting a Prisma app, `@prisma/cli app deploy`, `compute:deploy`, `create-prisma --deploy`, `PRISMA_SERVICE_TOKEN`, `auth workspace`, Compute apps/deployments/build logs/domains, `@prisma/cli agent install`, localhost vs `0.0.0.0`, deploy port binding, or framework deploy readiness for Hono, Elysia, Next.js, TanStack Start, Astro, Nuxt, Svelte,...
developmentdevopsofficial