prisma-client-api

--- Référence de l'API Prisma Client couvrant les requêtes de modèles, les filtres, les opérateurs et les méthodes du client. À utiliser lors de l'écriture de requêtes de base de données, l'utilisation des opérations CRUD, le filtrage des données ou la configuration de Prisma Client. Se déclenche sur « prisma query », « findMany », « create », « update », « delete », « $transaction ».

npx skills add https://github.com/prisma/skills --skill prisma-client-api

Référence de l'API Prisma Client

Référence complète de l'API Prisma Client. Cette compétence fournit des conseils sur les requêtes de modèles, le filtrage, les relations et les méthodes client pour les projets Prisma actuels.

Quand l'appliquer

Consultez cette compétence lorsque :

  • Vous écrivez des requêtes de base de données avec Prisma Client
  • Vous effectuez des opérations CRUD (créer, lire, mettre à jour, supprimer)
  • Vous filtrez et triez des données
  • Vous travaillez avec des relations
  • Vous utilisez des transactions
  • Vous configurez les options client

Catégories de règles par priorité

Priorité Catégorie Impact Préfixe
1 Client Construction HIGH constructor
2 Model Queries CRITICAL model-queries
3 Query Shape HIGH query-options
4 Filtering HIGH filters
5 Relations HIGH relations
6 Transactions CRITICAL transactions
7 Raw SQL CRITICAL raw-queries
8 Client Methods MEDIUM client-methods

Référence rapide

  • constructor - Configuration de PrismaClient, câblage d'adaptateur, journalisation et plugins SQL commenter
  • model-queries - Opérations CRUD et opérations en masse
  • query-options - select, include, omit, tri, pagination
  • filters - Opérateurs de filtrage scalaires et logiques
  • relations - Lectures de relations et écritures imbriquées
  • transactions - Modèles de transactions en tableau et interactifs
  • raw-queries - Sécurité de $queryRaw et $executeRaw
  • client-methods - Méthodes de cycle de vie, extensions et modèles satisfies pour prisma-client

Instanciation du client

import { PrismaClient } from '../generated/client'
import { PrismaPg } from '@prisma/adapter-pg'

const adapter = new PrismaPg({
  connectionString: process.env.DATABASE_URL
})

const prisma = new PrismaClient({ adapter })

Méthodes de requête de modèle

Méthode Description
findUnique() Trouver un enregistrement par champ unique
findUniqueOrThrow() Trouver un ou lever une erreur
findFirst() Trouver le premier enregistrement correspondant
findFirstOrThrow() Trouver le premier ou lever une erreur
findMany() Trouver plusieurs enregistrements
create() Créer un nouvel enregistrement
createMany() Créer plusieurs enregistrements
createManyAndReturn() Créer plusieurs et les retourner
update() Mettre à jour un enregistrement
updateMany() Mettre à jour plusieurs enregistrements
updateManyAndReturn() Mettre à jour plusieurs et les retourner
upsert() Mettre à jour ou créer un enregistrement
delete() Supprimer un enregistrement
deleteMany() Supprimer plusieurs enregistrements
count() Compter les enregistrements correspondants
aggregate() Agréger les valeurs (somme, moyenne, etc.)
groupBy() Grouper et agréger

Options de requête

Option Description
where Conditions de filtrage
select Champs à inclure
include Relations à charger
omit Champs à exclure
orderBy Ordre de tri
take Limiter les résultats
skip Ignorer les résultats (pagination)
cursor Pagination basée sur le curseur
distinct Valeurs uniques uniquement

Méthodes du client

Méthode Description
$connect() Se connecter explicitement à la base de données
$disconnect() Se déconnecter de la base de données
$transaction() Exécuter une transaction
$queryRaw() Exécuter une requête SQL brute
$executeRaw() Exécuter une commande SQL brute
$on() S'abonner aux événements
$extends() Ajouter des extensions

Exemples rapides

Trouver des enregistrements

// Trouver par champ unique
const user = await prisma.user.findUnique({
  where: { email: 'alice@prisma.io' }
})

// Trouver avec filtre
const users = await prisma.user.findMany({
  where: { role: 'ADMIN' },
  orderBy: { createdAt: 'desc' },
  take: 10
})

Créer des enregistrements

const user = await prisma.user.create({
  data: {
    email: 'alice@prisma.io',
    name: 'Alice',
    posts: {
      create: { title: 'Hello World' }
    }
  },
  include: { posts: true }
})

Mettre à jour des enregistrements

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

Supprimer des enregistrements

await prisma.user.delete({
  where: { id: 1 }
})

Transactions

const [user, post] = await prisma.$transaction([
  prisma.user.create({ data: { email: 'alice@prisma.io' } }),
  prisma.post.create({ data: { title: 'Hello', authorId: 1 } })
])

Fichiers de règles

Documentation détaillée de l'API :

references/constructor.md        - Options du constructeur PrismaClient
references/model-queries.md      - Opérations CRUD
references/query-options.md      - select, include, omit, where, orderBy
references/filters.md            - Conditions de filtrage et opérateurs
references/relations.md          - Requêtes de relations et opérations imbriquées
references/transactions.md       - API des transactions
references/raw-queries.md        - $queryRaw, $executeRaw
references/client-methods.md     - $connect, $disconnect, $on, $extends

Opérateurs de filtrage

Opérateur Description
equals Correspondance exacte
not Pas égal
in Dans le tableau
notIn Pas dans le tableau
lt, lte Inférieur à
gt, gte Supérieur à
contains La chaîne contient
startsWith La chaîne commence par
endsWith La chaîne se termine par
mode Sensibilité à la casse

Filtres de relations

Opérateur Description
some Au moins un enregistrement associé correspond
every Tous les enregistrements associés correspondent
none Aucun enregistrement associé ne correspond
is L'enregistrement associé correspond (1 à 1)
isNot L'enregistrement associé ne correspond pas

Ressources

Comment l'utiliser

Choisissez la catégorie dans le tableau ci-dessus, puis ouvrez le fichier de référence correspondant pour les détails de mise en œuvre et les exemples.