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 Prisma-mongodb-nextjs-example do Github.