05-10-2024Ongeveer 2 minutenOngeveer 317 woorden
Begrip: Prisma Read
Prisma bevat verschillende methodes om data uit te lezen, er zijn methodes beschikbaar om één of meerdere rijen op te halen en om deze te filteren.
Filteren gebeurd via de where parameter en kan op volgende manieren:
- Zoek op exacte matches voor één of meerdere kolommen, hierbij moet voldaan zijn aan alle voorwaarden:
{ someColumn: 'someValue', anotherColumn: 'anotherValue' } - Filteren via een ingebouwde filtering operatoren zoals equals, contains, gt, lt, in, startsWith, endsWith, notIn, ... Hier moet eveneens voldaan zijn aan alle voorwaarden:
{ someColumn: { notIn: ['x', 'y', 'z'] }, anotherColumn: { gt: 10 } } - Combineren van meerdere filters met AND of OR:
{ OR: [{ someColumn: 'someValue' }, { anotherColumn: {gte: 10 }] }
Het is optioneel mogelijk om aan te geven welke kolommen teruggegeven worden via de select parameter. Zodra de select parameter meegegeven is, worden enkel de opgegeven kolommen opgehaald uit de database.
Via de optionele omit parameter wordt aangeven welke kolommen niet teruggegeven moeten worden. Omdat select en omit elkaar uitsluiten, kan slechts één van beide parameters tegelijkertijd gebruikt worden.
const oneFoo = prisma.foo.findUnique({
where: { someUniqueProperty: 'someValue'},
// Select is optioneel, als je dit meegeeft moet je alle
// properties meegeven die je nodig hebt.
// Als de parameter ontbreekt worden alle kolommen teruggeven.
select: {
// ...
},
// Omit is optioneel, alle kolommen die hierin vermeld worden,
// worden niet teruggegeven door Prisma.
// NIET te combineren met select.
omit: {
// ...
}
})
const oneFoo2 = prisma.foo.findUniqueOrThrow({
where: { someUniqueProperty: 'someValue'},
select: {}, // Optioneel
omit: {}, // Optioneel, niet te combineren met select.
})
const firstMatchingFoo = prisma.findFirst({
where: {}, // Optioneel
select: {}, // Optioneel
omit: {}, // Optioneel, niet te combineren met select.
})
const allMatchingFoos = prisma.findMany({
where: {}, // Optioneel
select: {}, // Optioneel
omit: {}, // Optioneel, niet te combineren met select.
orderBy: { // Optioneel
someColumn: 'asc', // 'desc' is ook geldig.
},
})