MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Menu Docs
Página inicial do Docs
/ /

Integração com Mongoose

Mongoose é um baseado em Node.js Biblioteca de Modelagem de Dados de Objetos (ODM) que fornece modelagem de dados baseada em esquema, validação, construção de query e hooks de lógica de negócios.

Um ODM é semelhante ao Object Relational Mapper (ORM) usado com bancos de dados SQL tradicionais, mas projetado especificamente para o modelo de dados baseado em documentos do MongoDB.

Dica

Compatibilidade com o Mongoose

Para saber mais sobre a compatibilidade do Mongoose com diferentes versões do servidor MongoDB, consulte a página Compatibilidade do Mongoose na documentação do Mongoose.

A modelagem de dados de objetos (ODM) cria um relacionamento estruturado entre o código do aplicativo e os documentos do banco de dados. Com um ODM como o Mongoose, você define esquemas no nível do aplicativo que mapeiam para as coleções do MongoDB e forçam estrutura nos documentos dentro dessas coleções.

O MongoDB fornece um modelo de dados flexível que permite modificar o esquema do banco de dados à medida que o aplicativo evolui. No entanto, seu caso de uso pode exigir consistência em sua estrutura de dados entre documentos em uma coleção.

O Mongoose atende a essa necessidade de consistência fornecendo as seguintes funcionalidades:

  • Defina a estrutura e os tipos de dados dos seus documentos

  • Gerar modelos a partir de esquemas para interagir com coleções

  • Forçar regras de validação de dados no nível do aplicativo

  • Executar lógica personalizada antes ou depois das operações de banco de dados

  • Construa e execute queries de banco de dados com uma API fluente

  • Documentos de Referência de outras coleções (semelhantes às junções)

O Mongoose força esquemas no nível do aplicativo. Você define um esquema que especifica a estrutura dos documentos em uma coleção, incluindo nomes de campo, tipos de dados e regras de validação. O Mongoose valida os dados em relação a esse esquema antes de executar operações no banco de dados .

O esquema e as regras de validação existem apenas no código do aplicativo nó.js O próprio servidor MongoDB permanece alheio a essas restrições e aceita qualquer documento BSON válido que seu aplicativo envie.

O Mongoose exige que você defina esquemas e modelos antes de realizar a interação com suas coleções. Essa abordagem estruturada pode ser familiar para desenvolvedores com experiência em bancos de dados relacionais ou outros ORMs.

A desvantagem é a flexibilidade reduzida. Quando você precisa modificar sua estrutura de dados, você deve atualizar seus esquemas Mongoose.

O Mongoose valida os dados de duas maneiras. Primeiro, ao definir os tipos de campo em seu esquema, você especifica quais tipos de dados cada campo permite. O Mongoose rejeita operações que tentam inserir dados que não correspondem aos tipos definidos.

Em segundo lugar, você pode adicionar regras de validação específicas, como campos obrigatórios, valores mínimos ou máximos, restrições de comprimento de string ou funções de validação personalizadas.

Essas regras de validação só se aplicam quando você usa o Mongoose em seu aplicativo nó.js Outros aplicativos ou FERRAMENTAS de banco de dados podem ignorar essas regras porque elas existem apenas no código do seu aplicativo.

Para obter mais informações sobre a validação de dados usando o driver nó do MongoDB junto com a validação de esquema integrado do MongoDB, consulte o guia Validação de esquema do MongoDB no manual do servidor.

Tanto o Mongoose quanto o driver Node.js do MongoDB oferecem suporte à combinação de documentos de várias coleções, semelhante às junções em bancos de dados relacionais.

A Mongoose fornece o método populate() para fazer referência a documentos de outras coleções. Você define referências em seu esquema especificando a qual coleção elas fazem referência. ObjectId é um tipo comum a ser usado para referências, mas o Mongoose também oferece suporte ao uso de outros tipos, como strings, números, UUIDs e buffers. Ao fazer query, o Mongoose pode substituir automaticamente essas referências pelos documentos reais.

O Mongoose executa operações de preenchimento executando várias queries. Esta abordagem pode ser benéfica em determinados cenários, como ao trabalhar com grandes verificações ou quando os índices estão ausentes.

O MongoDB fornece o estágio de agregação $lookup para a execução de uma ação semelhante às junções externas esquerdas entre coleções no mesmo banco de dados. O driver do MongoDB Node.js fornece acesso direto a esse recurso por meio de pipelines de agregação.

O operador $lookup é executado como uma única operação de pipeline de agregação. Essa abordagem pode oferecer benefícios de desempenho em alguns casos, mas o desempenho real depende de fatores como tamanho dos dados, índices disponíveis e padrões de query.

Para aprender como instalar o Mongoose, conectar-se ao MongoDB e executar operações CRUD usando esquemas e modelos do Mongoose, consulte o Mongoose Get Started tutorial.

Voltar

Proxy SOCKS

Nesta página