it-swarm.com.de

Unterschied zwischen MongoDB und Mongoose

Ich wollte die Mongodb-Datenbank verwenden, habe aber festgestellt, dass es zwei verschiedene Datenbanken mit jeweils eigener Website und Installationsmethode gibt: Mongodb und Mongoose. Also stellte ich mir die Frage: "Welches verwende ich?".

Um diese Frage zu beantworten, frage ich die Community, ob Sie die Unterschiede zwischen diesen beiden erklären könnten. Und wenn möglich Vor- und Nachteile? Weil sie mir wirklich sehr ähnlich sehen.

105
Ravindra Galav

Ich gehe davon aus, dass Sie bereits wissen, dass MongoDB ein NoSQL-Datenbanksystem ist, das Daten in Form von BSON-Dokumenten speichert. Ihre Frage bezieht sich jedoch auf die Pakete für Node.js.

In Bezug auf Node.js ist mongodb der native Treiber für die Interaktion mit einer mongodb-Instanz und mongoose ist ein Objektmodellierungswerkzeug für MongoDB.

Mongoose basiert auf dem MongoDB-Treiber, um Programmierern die Möglichkeit zu geben, ihre Daten zu modellieren.

EDIT: Ich möchte nicht kommentieren, was besser ist, da dies diese Antwort zu einer Meinung machen würde. Ich werde jedoch einige Vor- und Nachteile der Verwendung beider Ansätze auflisten.

Mit Mongoose kann ein Benutzer das Schema für die Dokumente in einer bestimmten Sammlung definieren. Es bietet viel Komfort bei der Erstellung und Verwaltung von Daten in MongoDB. Auf der anderen Seite kann das Erlernen von Mungo einige Zeit in Anspruch nehmen und hat einige Einschränkungen beim Umgang mit Schemata, die recht komplex sind.

Wenn Ihr Erfassungsschema jedoch nicht vorhersehbar ist oder Sie eine Mongo-Shell-ähnliche Erfahrung in Node.js wünschen, verwenden Sie den MongoDB-Treiber. Es ist am einfachsten zu erlernen. Der Nachteil hierbei ist, dass Sie größere Mengen an Code schreiben müssen, um die Daten zu validieren, und das Fehlerrisiko ist höher.

169
ZeMoon

Mongo ist NoSQL-Datenbank.

Wenn Sie kein ORM für Ihre Datenmodelle verwenden möchten, können Sie auch den nativen Treiber mongo.js verwenden: https: // github.com/mongodb/node-mongodb-native .

Mongoose ist einer der Orms, die uns Funktionen für den Zugriff auf die Mongo-Daten mit leicht verständlichen Abfragen zur Verfügung stellen.

Mungo spielt eine Rolle der Abstraktion über Ihr Datenbankmodell.

36
Anubhav Singh

Ein weiterer Unterschied, den ich in Bezug auf beide gefunden habe, ist, dass es ziemlich einfach ist, connect to multiple databases mit mongodb native driver, während Sie Workarounds in mongoose verwenden müssen, die noch einige Nachteile haben.

Wenn Sie sich also für eine Anwendung mit mehreren Mandanten entscheiden möchten, entscheiden Sie sich für einen nativen Mongodb-Treiber.

10
Rahul

Mongodb und Mongoose sind zwei verschiedene Treiber für die Interaktion mit der MongoDB-Datenbank.

Mongoose: Objektdatenmodellierungsbibliothek (ODM), die eine strenge Modellierungsumgebung für Ihre Daten bietet. Durch die Interaktion mit MongoDB wird das Leben einfacher, da die Verwaltung der Daten vereinfacht wird.

Mongodb: Nativer Treiber in Node.js zur Interaktion mit MongoDB.

4
dhaker

Wenn Sie diese Komponenten zusammen mit Ihrem proprietären Code verwenden möchten, lesen Sie bitte die folgenden Informationen.

Mongodb:

  1. Es ist eine Datenbank.
  2. Diese Komponente unterliegt der Affero General Public License (AGPL) -Lizenz.
  3. Wenn Sie diese Komponente zusammen mit Ihrem proprietären Code verknüpfen, müssen Sie Ihren gesamten Quellcode im öffentlichen Bereich freigeben, da er sich auf Viren wie (GPL, LGPL usw.) auswirkt.
  4. Wenn Sie Ihre Anwendung über die Cloud hosten, gilt (2) und Sie müssen Ihre Installationsinformationen für die Endbenutzer freigeben.

Mungo:

  1. Es ist ein Objektmodellierungswerkzeug.
  2. Diese Komponente unterliegt der MIT Lizenz.
  3. Darf diese Komponente zusammen mit dem proprietären Code ohne Einschränkungen verwenden.
  4. Der Versand Ihrer Anwendung über ein Medium oder einen Host ist zulässig.
4
ANK

mongo-db ist wahrscheinlich keine gute Wahl für neue Entwickler.
Andererseits kann mongoose als ORM (Object Relational Mapping) eine bessere Wahl für Neueinsteiger sein.

2
Shreyash Pandey

Mongodb und Mongoose sind zwei völlig verschiedene Dinge!

Mongodb ist die Datenbank selbst, während Mongoose ein Objektmodellierungswerkzeug für Mongodb ist

EDIT: Wie bereits erwähnt, ist MongoDB das npm-Paket, danke!

1
Secret