Visão geral
Prisma é um Object Relational Mapper (ORM) open source para Node.js Ele é compatível com o JavaScript e o TypeScript, mas é usado principalmente com o TypeScript para ajudá-lo a escrever código legível e seguro para o tipo.
Schemas
Os esquemas ajudam os desenvolvedores a evitar problemas de inconsistência de dados ao longo do tempo definindo a estrutura dos documentos da sua coleção. Enquanto você pode definir um esquema no nível do banco de dados dentro do MongoDB, o Prisma permite definir um esquema no nível do aplicação . Como o cliente Prisma está ciente do esquema, os desenvolvedores que usam o Prisma Client têm acesso a queries de preenchimento automático.
Modelagem de dados
Geralmente, os dados acessados juntos devem ser armazenados juntos em uma coleção do MongoDB . O Prisma suporta o uso de documentos incorporados para manter os dados juntos. Em casos de uso em que é necessário armazenar dados relacionados em coleções separadas do MongoDB , você deve incluir o campo _id
de um documento em outro documento. O Prisma simplifica esse processo e ajuda você a organizar esses dados relacionados, ao mesmo tempo em que mantém a integridade referencial dos dados.
Para saber mais sobre modelagem de dados eficiente no MongoDB, consulte Reduzir operações de $lookup no manual do MongoDB Server .
Tutorial
Este tutorial mostra como executar as seguintes ações:
Baixe um exemplo de aplicação Prisma
Configure seu esquema Prisma
Criar e preencher um banco de dados MongoDB com dados de amostra
Torne o aplicação de exemplo compatível com MongoDB
Execute o aplicativo
Verifique os pré-requisitos
Antes de iniciar este tutorial, verifique se você tem os seguintes componentes preparados:
Uma conta do MongoDB Atlas com um cluster configurado. Para visualizar instruções, consulte o guia Iniciar com Atlas .
Node.js v16.20.1 ou mais tarde.
Baixe o aplicação de exemplo
Clone ou baixe o aplicação de exemplo no repositório de exemplos do Prisma.
Este exemplo é uma plataforma simples de gerenciamento de conteúdo de blog que usa um banco de dados SQLite. As etapas a seguir modificam o aplicação para usar MongoDB em vez de SQLite.
Configure seu esquema Prisma
Navegue até o arquivo prisma/schema.prisma
no diretório do aplicação de exemplo . No objeto datasource db
deste arquivo, configure o campo provider
para "mongodb"
e o campo url
para seu URI de conexão do Atlas .
No modelo User
no mesmo arquivo, altere o tipo de campo id
de Int
para String
e defina o valor padrão como auto()
. A propriedade id
deve mapear para o campo _id
do MongoDB . Você também deve instruir Prisma a definir o tipo de dados dessa propriedade como ObjectId
.
No modelo Post
, execute as mesmas alterações no campo id
que você fez no modelo User
. Você também deve alterar o tipo de campo authorId
de Int
para String
e configurar o tipo de dados para ObjectId
.
Seu arquivo schema.prisma
deve ser semelhante ao seguinte:
generator client { provider = "prisma-client-js" } datasource db { provider = "mongodb" url = "<your connection URI>" } model Post { id String (auto()) ("_id") .ObjectId createdAt DateTime (now()) updatedAt DateTime title String content String? published Boolean (false) viewCount Int (0) author User (fields: [authorId], references: [id]) authorId String .ObjectId } model User { id String (auto()) ("_id") .ObjectId email String name String? posts Post[] }
Esse esquema define collections User
e Post
separadas em seu banco de dados MongoDB , onde cada Post
contém uma referência a um User
.
Depois de fazer essas alterações, navegue até o diretório do projeto em seu terminal e execute os seguintes comandos para instalar as dependências necessárias e gerar o esquema:
npm install npx prisma generate
Observação
Se você fizer mais alterações no esquema, deverá executar novamente o comando npx prisma generate
para que as alterações entrem em vigor.
Criar e preencher o banco de dados MongoDB
Para preencher o banco de dados com dados de amostra, execute o arquivo prisma/seed.ts
no projeto de exemplo executando o seguinte comando:
npx prisma db seed
Isso cria as coleçãos User
e Post
, conforme definido pelo arquivo schema.prisma
, e as preenche com dados de amostra.
Torne o aplicação de exemplo compatível com MongoDB
Navegue até o diretório src
do projeto de exemplo . Nos arquivos pages/api/post/[id].ts
e pages/api/publish/[id].ts
, substitua todas as instâncias de Number(postId)
por postId
. Isso é necessário porque os campos id
no esquema agora são do tipo String
em vez de Int
.
Execute o aplicativo
Para iniciar o aplicação, execute o seguinte comando no diretório do projeto :
npm run dev
Navegue até http://localhost:3000
em seu navegador da web para visualizar e executar o aplicação. Você pode usar o aplicação para criar, redigir, publicar e excluir blog posts. Você pode fazer referência às definições de rota da API na pasta pages/api
do projeto de exemplo .
Recursos adicionais
Para saber mais sobre o Prisma, consulte a documentação do Prisma.
Para visualizar e baixar uma versão completa do aplicação neste tutorial, consulte o repositório GitHubprisma-mongodb-nextjs-example.