Przejdź do głównej zawartości

Zapytania do bazy danych w Prisma

Teraz już wiesz jak dodać Prismę do swojego projektu. Czas zaciągnąć jakieś dane. Składnia zapytań w Prismie jest bardzo prosta i wygląda mniej-więcej tak:

prisma.nazwaTabeli.typFinda({
where: {
kolumna: wartość,
},
select: {
kolumna: true,
},
include: {
nazwaTabeliWRelacji: {
select: {
kolumnaZTabeliWRelacji: true,
},
},
},
});

Teraz co tu się wydarzyło? Przede wszystkim odnieśliśmy się do naszego globalnego obiektu prisma. Dalej, wybieramy z jakiej tabeli chcemy wyciągnąć dane.

typFinda definuje w jaki sposób Prisma będzie szukać danych w tabeli. Dostępne opcje to findMany, findFirst (odpowiada LIMIT 1 w SQL) i findUnique (odpowiada DISTINCT w SQL).

Wewnątrz find’a możemy doprecyzować co dokładnie chcemy, żeby Prisma nam zwróciła.

  • where pozwala nam filtrować dane. Jako wartość możemy wpisać statyczną wartość, lub zmienną podaną na przykład jako argument funkcji serwerowej
  • select pozwala nam wybrać, które kolumny chcemy zwrócić. Możemy też zwrócić wszystkie kolumny, w ogóle nie wpisując select do zapytania
  • include pozwala nam zwrócić dane z relacji. Wewnątrz include możemy zagnieżdżać kolejne select i include, co pozwala na zwrócenie danych z relacji relacji. Generalnie, zabawa z zagnieżdżonymi relacjami. Jakie zagnieżdżenie będzie głębokie zależy tylko od twojej struktury bazy danych.

Ale jak można się domyślić, zapytania do bazy danych nie ograniczają się tylko do find. Prisma oferuje nam wiele innych metod, które możemy wykorzystać w zależności od naszych potrzeb. Umożliwia ona pełen zakres operacji CRUD’owych. Dla szczegółowego opisu odsyłam do dokumentacji Prismy, bo to dopiero czubek góry lodowej.