Suponho que você já saiba que o MongoDB é um sistema de banco de dados NoSQL que armazena dados na forma de documentos BSON. Sua pergunta, porém, é sobre os pacotes para Node.js.
Em termos de Node.js, mongodb é o driver nativo para interagir com uma instância do mongodb e o mongoose é uma ferramenta de modelagem de objetos para MongoDB.
mongoose
é construído sobre o mongodb
driver para fornecer aos programadores uma maneira de modelar seus dados. EDITAR: Não quero comentar sobre qual é melhor, pois isso tornaria essa resposta opinativa. No entanto, vou listar algumas vantagens e desvantagens de usar ambas as abordagens.
Usando
mongoose
, um usuário pode definir o esquema para os documentos em uma coleção específica. Ele fornece muita conveniência na criação e gerenciamento de dados no MongoDB. No lado negativo, aprender mangusto pode levar algum tempo e tem algumas limitações no manuseio de esquemas bastante complexos. No entanto, se seu esquema de coleção for imprevisível ou você quiser uma experiência do tipo Mongo-shell dentro do Node.js, vá em frente e use o
mongodb
motorista. É o mais simples de pegar. A desvantagem aqui é que você terá que escrever grandes quantidades de código para validar os dados e o risco de erros é maior.