Разница между MongoDB и Mongoose
Я хотел использовать базу данных mongodb, но я заметил, что есть две разные базы данных с их собственным сайтом и методами установки: mongodb и mongoose. Поэтому я поднялся, задавая себе этот вопрос: "Какой из них я использую?".
Итак, чтобы ответить на этот вопрос, я спрашиваю сообщество, можете ли вы объяснить, в чем различия между этими двумя? И по возможности плюсы и минусы? Потому что они действительно очень похожи на меня.
Ответы
Ответ 1
Я предполагаю, что вы уже знаете, что MongoDB - это система баз данных NoSQL, которая хранит данные в форме документов BSON. Ваш вопрос, однако, о пакетах для Node.js.
С точки зрения Node.js, mongodb - это родной драйвер для взаимодействия с экземпляром mongodb, а mongoose - инструмент для моделирования объектов для MongoDB.
Mongoose построен поверх драйвера MongoDB, чтобы предоставить программистам возможность моделировать свои данные.
РЕДАКТИРОВАТЬ: я не хочу комментировать, что лучше, так как это сделало бы этот ответ самоуверенным. Однако я перечислю некоторые преимущества и недостатки использования обоих подходов.
Используя Mongoose, пользователь может определить схему для документов в определенной коллекции. Это обеспечивает большое удобство в создании и управлении данными в MongoDB. С другой стороны, изучение мангуста может занять некоторое время, и имеет некоторые ограничения в работе со схемами, которые являются довольно сложными.
Однако, если ваша схема сбора непредсказуема, или вы хотите использовать оболочку типа Mongo в Node.js, тогда используйте драйвер MongoDB. Это проще всего подобрать. Недостатком здесь является то, что вам придется писать большие объемы кода для проверки данных, и риск ошибок выше.
Ответ 2
Mongo - это база данных NoSQL.
Если вы не хотите использовать ORM для своих моделей данных, вы также можете использовать собственный драйвер mongo.js: https://github.com/mongodb/node-mongodb-native.
Mongoose - одна из тех, кто предоставляет нам функциональные возможности для доступа к данным Монго с помощью легко понятных запросов.
Mongoose играет роль абстракции над вашей моделью базы данных.
Ответ 3
Еще одно отличие, которое я обнаружил по отношению к обоим, заключается в том, что с mongodb native driver
достаточно легко connect to multiple databases
, в то время как вам нужно использовать work arounds в mongoose
, которые все еще имеют некоторые недостатки.
Итак, если вы хотите пойти на многозадачное приложение, пойдите для родного драйвера mongodb.
Ответ 4
Mongodb и Mongoose - это два разных драйвера для взаимодействия с базой данных MongoDB.
Mongoose: библиотека моделирования объектных данных (ODM), которая обеспечивает строгую среду моделирования для ваших данных. Используется для взаимодействия с MongoDB, облегчает жизнь, обеспечивая удобство в управлении данными.
Mongodb: собственный драйвер в Node.js для взаимодействия с MongoDB.
Ответ 5
Если вы планируете использовать эти компоненты вместе с проприетарным кодом, пожалуйста, обратитесь к информации ниже.
MongoDB:
- Это база данных.
- Этот компонент регулируется общей лицензией Affero General Public License (AGPL).
- Если вы связываете этот компонент вместе со своим проприетарным кодом, то вы должны опубликовать весь исходный код в открытом доступе из-за его вирусного эффекта, такого как (GPL, LGPL и т.д.)
- Если вы размещаете свое приложение в облаке, то применяется (2), а также вам необходимо предоставить информацию об установке конечным пользователям.
Мангуста:
- Это инструмент моделирования объектов.
- Этот компонент регулируется лицензией MIT.
- Разрешено использовать этот компонент вместе с проприетарным кодом без каких-либо ограничений.
- Доставка приложения с использованием любого носителя или хоста разрешена.
Ответ 6
mongo-db
, вероятно, не mongo-db
выбор для новых разработчиков.
С другой стороны, mongoose
в качестве ORM (Object Relational Mapping) может быть лучшим выбором для новичков.
Ответ 7
Mongodb and Mongoose - это две совершенно разные вещи!
Mongodb - это сама база , а Mongoose - инструмент моделирования объектов для Mongodb
EDIT: Как указано, MongoDB - это пакет npm, спасибо!