web-dev-qa-db-ja.com

MongoDBとMongooseの違い

Mongodbデータベースを使用したかったのですが、独自のWebサイトとインストール方法を備えた2つの異なるデータベース、mongodbとmongooseがあることに気付きました。だから私は自分にこの質問を思いついた:「どれを使うのか?」。

それで、この質問に答えるために、これら二つの違いは何であるか説明できるかどうかコミュニティに尋ねますか?そして、可能であれば賛否両論?彼らは本当に私に非常によく似ているからです。

101
Ravindra Galav

MongoDBは、BSONドキュメントの形式でデータを保存するNoSQLデータベースシステムであることを既に知っていると思います。ただし、あなたの質問はNode.jsのパッケージに関するものです。

Node.jsに関しては、 mongodb は、mongodbインスタンスと対話するためのネイティブドライバーおよび mongoose は、MongoDB用のオブジェクトモデリングツールです。

MongooseはMongoDBドライバーの上に構築されており、プログラマーにデータをモデル化する方法を提供します。

EDIT:この回答が意見を述べるようになるため、どちらが良いかについてコメントしたくありません。ただし、両方のアプローチを使用する利点と欠点をいくつかリストします。

Mongooseを使用すると、ユーザーは特定のコレクション内のドキュメントのスキーマを定義できます。 MongoDBでのデータの作成と管理に多くの利便性を提供します。欠点として、マングースの学習には時間がかかることがあり、非常に複雑なスキーマの処理に制限があります。

ただし、コレクションスキーマが予測できない場合、またはNode.js内でMongo-Shellのようなエクスペリエンスが必要な場合は、MongoDBドライバーを使用してください。最も簡単に手に入れることができます。ここでの欠点は、データを検証するために大量のコードを記述する必要があり、エラーのリスクが高くなることです。

162
ZeMoon

MongoはNoSQLデータベースです。

データモデルに ORM を使用したくない場合は、ネイティブドライバmongo.jsも使用できます。 https://github.com/mongodb/node- mongodb-native

Mongooseは、わかりやすいクエリでmongoデータにアクセスする機能を提供する組織の1つです。

Mongooseは、データベースモデルの抽象化の役割を果たします。

36
Anubhav Singh

両方に関して私が見つけたもう1つの違いは、connect to multiple databasesmongodb native driverで使用するのはかなり簡単ですが、mongooseで回避策を使用しなければならないことです。

したがって、マルチテナントアプリケーションを使用する場合は、mongodbネイティブドライバーを使用してください。

10
Rahul

MongodbとMongooseは、MongoDBデータベースと対話するための2つの異なるドライバーです。

Mongoose:データの厳密なモデリング環境を提供するオブジェクトデータモデリング(ODM)ライブラリ。 MongoDBとのやり取りに使用され、データ管理の利便性を提供することで生活を楽にします。

Mongodb:MongoDBと対話するNode.jsのネイティブドライバー。

3
dhaker

独自のコードとともにこれらのコンポーネントを使用する場合は、以下の情報を参照してください。

Mongodb:

  1. データベースです。
  2. このコンポーネントは、Affero General Public License(AGPL)ライセンスによって管理されます。
  3. 独自のコードとこのコンポーネントをリンクする場合、(GPL、LGPLなど)のバイラル効果のため、パブリックドメインでソースコード全体をリリースする必要があります。
  4. クラウドを介してアプリケーションをホストしている場合は、(2)が適用され、エンドユーザーにインストール情報を公開する必要があります。

マングース:

  1. これはオブジェクトモデリングツールです。
  2. このコンポーネントは、MITライセンスによって管理されます。
  3. 独自のコードとともにこのコンポーネントを制限なしで使用できます。
  4. メディアまたはホストを使用してアプリケーションを出荷することは許可されています。
3
ANK

mongo-dbは、おそらく新しい開発者にとって素晴らしい選択肢ではありません。
一方で、ORM(オブジェクトリレーショナルマッピング)としてのmongooseは、初心者にとってより良い選択です。

2
Shreyash Pandey

MongodbとMongooseはまったく異なるものです!

Mongodbはデータベース自体、Mongooseはオブジェクトモデリングツール Mongodb

編集:指摘したように、MongoDBはnpmパッケージです、ありがとう!

1
Secret