tutorial nodejs node español data node.js mongodb mongoose

node.js - español - nodejs mongodb



Diferencia entre MongoDB y Mongoose (7)

Quería usar la base de datos mongodb, pero noté que hay dos bases de datos diferentes con su propio sitio web y métodos de instalación: mongodb y mangosta. Entonces se me ocurrió esta pregunta: "¿Cuál uso?".

Entonces, para responder a esta pregunta, le pregunto a la comunidad si podría explicar cuáles son las diferencias entre estos dos. ¿Y si es posible pros y contras? Porque realmente se parecen mucho a mí.


¡Mongodb y Mongoose son dos cosas completamente diferentes!

Mongodb es la base de datos en sí , mientras que Mongoose es una herramienta de modelado de objetos para Mongodb.

EDITAR: Como se señaló MongoDB es el paquete npm, ¡gracias!


Mongo es la base de datos NoSQL.

Si no desea usar ningún ORM para sus modelos de datos, también puede usar el controlador nativo mongo.js: https://github.com/mongodb/node-mongodb-native .

Mongoose es uno de los orms que nos brinda funcionalidad para acceder a los datos de mongo con consultas fácilmente comprensibles.

Mongoose juega un papel de abstracción sobre su modelo de base de datos.


Mongodb y Mongoose son dos controladores diferentes para interactuar con la base de datos MongoDB.

Mongoose : biblioteca de modelado de datos de objetos (ODM) que proporciona un entorno de modelado riguroso para sus datos. Utilizado para interactuar con MongoDB, facilita la vida al proporcionar comodidad en la gestión de datos.

Mongodb : controlador nativo en Node.js para interactuar con MongoDB.


Si planea utilizar estos componentes junto con su código de propiedad, consulte la información a continuación.

Mongodb:

  1. Es una base de datos.
  2. Este componente se rige por la licencia de Affero General Public License (AGPL).
  3. Si vincula este componente junto con su código propietario, debe liberar todo su código fuente en el dominio público, debido a su efecto viral como (GPL, LGPL, etc.)
  4. Si aloja su aplicación en la nube, se aplicará el (2) y también deberá divulgar su información de instalación a los usuarios finales.

Mangosta:

  1. Es una herramienta de modelado de objetos.
  2. Este componente se rige por la licencia MIT.
  3. Se permite usar este componente junto con el código de propiedad, sin ninguna restricción.
  4. Se permite enviar su aplicación utilizando cualquier medio o host.

Supongo que ya sabe que MongoDB es un sistema de base de datos NoSQL que almacena datos en forma de documentos BSON. Sin embargo, su pregunta es sobre los paquetes para Node.js.

En términos de Node.js, mongodb es el controlador nativo para interactuar con una instancia de mongodb y mongoose es una herramienta de modelado de objetos para MongoDB.

Mongoose está construido sobre el controlador MongoDB para proporcionar a los programadores una forma de modelar sus datos.

EDITAR: No quiero comentar cuál es mejor, ya que esto haría que esta respuesta sea obvia. Sin embargo, enumeraré algunas ventajas y desventajas de usar ambos enfoques.

Con Mongoose, un usuario puede definir el esquema para los documentos en una colección particular. Proporciona mucha conveniencia en la creación y gestión de datos en MongoDB. En el lado negativo, aprender mangosta puede llevar algo de tiempo y tiene algunas limitaciones en el manejo de esquemas que son bastante complejos.

Sin embargo, si su esquema de colección es impredecible, o si desea una experiencia similar a la de Mongo dentro de Node.js, continúe y use el controlador MongoDB. Es el más sencillo de recoger. La desventaja aquí es que tendrá que escribir grandes cantidades de código para validar los datos, y el riesgo de errores es mayor.


Una diferencia más que encontré con respecto a ambos es que es bastante fácil connect to multiple databases con el mongodb native driver mientras que tiene que usar soluciones alternativas en mongoose que todavía tienen algunos inconvenientes.

Entonces, si desea ir a una aplicación multiinquilino, busque el controlador nativo mongodb.


mongo-db probablemente no sea una gran opción para nuevos desarrolladores.
Por otro lado, la mongoose como ORM (mapeo relacional de objetos) puede ser una mejor opción para los nuevos.