Перейти к содержимому

8. CRUD операции

CRUD (Create, Read, Update, Delete) — базовые операции для работы с данными. Prisma предоставляет интуитивный API для всех этих операций с полной типобезопасностью.

// Создать одну запись
const user = await prisma.user.create({
data: {
name: 'Иван',
},
})
// Создать несколько записей за раз
await prisma.user.createMany({
data: [
{ email: '[email protected]', name: 'Анна' },
{ email: '[email protected]', name: 'Пётр' },
],
})
// Найти одну запись (возвращает null если не найдено)
const user = await prisma.user.findUnique({ where: { id: 1 } })
// Найти первую подходящую запись
const user = await prisma.user.findFirst({ where: { role: 'ADMIN' } })
// Найти все записи с условием
const users = await prisma.user.findMany({ where: { isActive: true } })
// Обновить одну запись
const updated = await prisma.user.update({
where: { id: 1 },
data: { name: 'Новое имя' },
})
// Обновить несколько записей
await prisma.user.updateMany({
where: { role: 'USER' },
data: { isActive: true },
})
// Удалить одну запись
await prisma.user.delete({ where: { id: 1 } })
// Удалить несколько записей
await prisma.user.deleteMany({ where: { isActive: false } })

upsert — это атомарная операция: если запись существует, она обновляется; если нет — создаётся:

const user = await prisma.user.upsert({
where: { email: '[email protected]' },
update: { name: 'Иван Обновлённый' },
create: { email: '[email protected]', name: 'Иван' },
})