我想使用mongodb数据库,但是我注意到有两个不同的数据库,它们都有自己的网站和安装方法:mongodb和mongoose。因此,我问自己一个问题:“我使用哪个?”。
因此,为了回答这个问题,我问社区是否可以解释这两者之间的区别?以及是否有利弊?因为它们看起来和我非常相似。
我想使用mongodb数据库,但是我注意到有两个不同的数据库,它们都有自己的网站和安装方法:mongodb和mongoose。因此,我问自己一个问题:“我使用哪个?”。
因此,为了回答这个问题,我问社区是否可以解释这两者之间的区别?以及是否有利弊?因为它们看起来和我非常相似。
Answers:
我假设您已经知道MongoDB是一个NoSQL数据库系统,它以BSON文档的形式存储数据。但是,您的问题是有关Node.js的软件包的。
就Node.js而言,mongodb是用于与mongodb实例进行交互的本机驱动程序,而mongoose是 用于MongoDB 的对象建模工具。
Mongoose建立在MongoDB驱动程序之上,为程序员提供了一种对其数据进行建模的方法。
编辑: 我不想评论哪个更好,因为这会使这个答案自以为是。但是,我将列出使用这两种方法的优点和缺点。
使用Mongoose,用户可以为特定集合中的文档定义架构。它在MongoDB中创建和管理数据提供了很多便利。不利的一面是,学习猫鼬可能会花费一些时间,并且在处理非常复杂的模式时会有一些限制。
但是,如果您的收集模式是不可预测的,或者您想在Node.js中体验类似Mongo-shell的体验,那么请继续使用MongoDB驱动程序。这是最简单的拿起。不利之处在于,您将必须编写大量代码来验证数据,并且出错的风险更高。
mongodb
不是MongoDB
:P
Mongo是NoSQL数据库。
如果您不想为数据模型使用任何ORM,则还可以使用本机驱动程序mongo.js:https : //github.com/mongodb/node-mongodb-native。
Mongoose是使我们能够通过易于理解的查询访问mongo数据的功能之一。
猫鼬在数据库模型中扮演着抽象的角色。
如果您打算将这些组件与专有代码一起使用,请参考以下信息。
Mongodb:
猫鼬:
mongo-db
对于新开发者而言,这可能不是一个不错的选择。
另一方面mongoose
,对于新手来说,ORM(对象关系映射)可能是更好的选择。
Mongodb和Mongoose是完全不同的两件事!
Mongodb是数据库本身,而Mongoose是Mongodb 的对象建模工具
编辑:指出MongoDB是npm包,谢谢!