Eu queria usar o banco de dados mongodb, mas notei que existem dois bancos de dados diferentes com seu próprio site e métodos de instalação: mongodb e mongoose. Então eu me perguntei: "Qual deles eu uso?".
Então, para responder a essa pergunta, pergunto à comunidade se você poderia explicar quais são as diferenças entre esses dois? E se possível prós e contras? Porque eles realmente se parecem muito comigo.
Respostas:
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, no entanto, é sobre os pacotes para Node.js.
Em termos de Node.js, o mongodb é o driver nativo para interagir com uma instância do mongodb e o mongoose é uma ferramenta de modelagem de objetos para o MongoDB.
O Mongoose é construído sobre o driver MongoDB para fornecer aos programadores uma maneira de modelar seus dados.
EDIT: Eu não quero comentar sobre o que é melhor, pois isso tornaria essa resposta opinativa. No entanto, listarei algumas vantagens e desvantagens do uso de ambas as abordagens.
Usando o 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. Por outro lado, aprender mangusto pode levar algum tempo e possui algumas limitações no manuseio de esquemas bastante complexos.
No entanto, se o seu esquema de coleção for imprevisível, ou você desejar uma experiência semelhante ao Mongo-shell no Node.js, vá em frente e use o driver MongoDB. É o mais simples de pegar. A desvantagem aqui é que você precisará escrever grandes quantidades de código para validar os dados, e o risco de erros é maior.
fonte
mongodb
nãoMongoDB
: PMongo é o banco de dados NoSQL.
Se você não quiser usar nenhum ORM para seus modelos de dados, também poderá usar o driver nativo mongo.js: https://github.com/mongodb/node-mongodb-native .
O Mongoose é um dos orm que nos fornece funcionalidade para acessar os dados do mongo com consultas facilmente compreensíveis.
O Mongoose desempenha um papel de abstração sobre o seu modelo de banco de dados.
fonte
Mais uma diferença que eu encontrei com respeito a ambos é que é bastante fácil de
connect to multiple databases
commongodb native driver
enquanto você tem que arounds uso de trabalho emmongoose
que ainda têm algumas desvantagens.Portanto, se você quiser usar um aplicativo multitenant, escolha o driver nativo mongodb.
fonte
Se você planeja usar esses componentes junto com seu código proprietário, consulte as informações abaixo.
Mongodb:
Mangusto:
fonte
mongo-db
provavelmente não é uma ótima opção para novos desenvolvedores.Por outro lado,
mongoose
como um ORM (Object Relational Mapping) pode ser uma escolha melhor para os novatos.fonte
Mongodb e Mongoose são dois drivers diferentes para interagir com o banco de dados MongoDB.
Mongoose : biblioteca de modelagem de dados do objeto (ODM) que fornece um ambiente de modelagem rigoroso para seus dados. Utilizado para interagir com o MongoDB, facilita a vida, fornecendo conveniência no gerenciamento de dados.
Mongodb : driver nativo no Node.js para interagir com o MongoDB.
fonte
Mongodb e Mongoose são duas coisas completamente diferentes!
O Mongodb é o próprio banco de dados , enquanto o Mongoose é uma ferramenta de modelagem de objetos para o Mongodb
EDIT: Como apontado, o MongoDB é o pacote npm, obrigado!
fonte