web-dev-qa-db-fra.com

Différence entre MongoDB et Mongoose

Je voulais utiliser la base de données mongodb, mais j'ai remarqué qu'il existe deux bases de données différentes avec leur propre site Web et leurs propres méthodes d'installation: mongodb et mangouste. Je suis donc venu me poser cette question: "Lequel dois-je utiliser?".

Donc, pour répondre à cette question, je demande à la communauté si vous pouvez expliquer quelles sont les différences entre ces deux-là. Et si possible le pour et le contre? Parce qu'ils me ressemblent beaucoup.

105
Ravindra Galav

Je suppose que vous savez déjà que MongoDB est un système de base de données NoSQL qui stocke des données sous la forme de documents BSON. Votre question concerne toutefois les packages pour Node.js.

En termes de Node.js, mongodb est le pilote natif permettant d’interagir avec une instance de mongodb et mangouste est un outil de modélisation d'objet pour MongoDB.

Mongoose est construit sur le pilote MongoDB afin de fournir aux programmeurs un moyen de modéliser leurs données.

EDIT: Je ne veux pas dire ce qui est le mieux, cela donnerait une opinion à cette réponse. Cependant, je vais énumérer quelques avantages et inconvénients de l’utilisation des deux approches.

À l'aide de Mongoose, un utilisateur peut définir le schéma des documents d'une collection particulière. Il offre beaucoup de confort dans la création et la gestion de données dans MongoDB. En revanche, l’apprentissage de la mangouste peut prendre un certain temps et présenter des limites dans la gestion de schémas assez complexes.

Toutefois, si votre schéma de collection est imprévisible ou si vous souhaitez une expérience similaire à Mongo-Shell dans Node.js, utilisez le pilote MongoDB. C'est le plus simple à prendre. L'inconvénient est que vous devrez écrire de plus grandes quantités de code pour valider les données, et le risque d'erreurs est plus élevé.

169
ZeMoon

Mongo est la base de données NoSQL.

Si vous ne souhaitez utiliser aucun ORM pour vos modèles de données, vous pouvez également utiliser le pilote natif mongo.js: https://github.com/mongodb/node- mongodb-native .

Mongoose est l’un des orms qui nous offre la possibilité d’accéder aux données Mongo avec des requêtes faciles à comprendre.

Mongoose joue un rôle d'abstraction sur votre modèle de base de données.

36
Anubhav Singh

Une autre différence que j’ai trouvée en ce qui concerne les deux méthodes est qu’il est assez facile de connect to multiple databases avec mongodb native driver alors que vous devez utiliser des solutions de contournement dans mongoose qui présentent encore des inconvénients.

Donc, si vous voulez utiliser une application multi-locataires, optez pour le pilote natif de mongodb.

10
Rahul

Mongodb et Mongoose sont deux moteurs différents pour interagir avec la base de données MongoDB.

Mongoose: bibliothèque ODM (Object Data Modeling) qui fournit un environnement de modélisation rigoureux pour vos données. Utilisé pour interagir avec MongoDB, il simplifie la vie en facilitant la gestion des données.

Mongodb: pilote natif dans Node.js pour interagir avec MongoDB.

4
dhaker

Si vous envisagez d'utiliser ces composants avec votre code propriétaire, veuillez vous reporter aux informations ci-dessous.

Mongodb:

  1. C'est une base de données.
  2. Ce composant est régi par la licence Affero General Public License (AGPL).
  3. Si vous associez ce composant à votre code propriétaire, vous devez alors publier l'intégralité de votre code source dans le domaine public, en raison de son effet viral tel que (GPL, LGPL, etc.).
  4. Si vous hébergez votre application sur le cloud, le (2) s'appliquera et vous devrez également divulguer vos informations d'installation aux utilisateurs finaux.

Mongoose:

  1. C'est un outil de modélisation d'objet.
  2. Ce composant est régi par la licence MIT.
  3. Autorisé à utiliser ce composant avec le code propriétaire, sans aucune restriction.
  4. L'expédition de votre application à l'aide de n'importe quel média ou hôte est autorisée.
4
ANK

mongo-db n'est probablement pas un excellent choix pour les nouveaux développeurs.
D'autre part, mongoose en tant qu'ORM (Object Relational Mapping) peut être un meilleur choix pour les nouveaux utilisateurs.

2
Shreyash Pandey

Mongodb et Mongoose sont deux choses complètement différentes!

Mongodb est le la base de données elle-même, alors que Mongoose est n outil de modélisation d'objet pour Mongodb

EDIT: Comme indiqué, MongoDB est le package npm, merci!

1
Secret