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.