MongoDB和Mongoose的区别

我想使用mongodb数据库,但我注意到有两个不同的数据库都有自己的网站和安装方法:mongodb和mongoose。 于是我问自己这个问题:“我使用哪一个?”。

所以为了回答这个问题,我问社区你是否可以解释这两者之间的区别? 如果可能的话,优点和缺点? 因为他们看起来和我非常相似。


我假设你已经知道MongoDB是一个NoSQL数据库系统,它以BSON文档的形式存储数据。 但是,您的问题是关于Node.js的软件包。

就Node.js而言,mongodb是与mongodb实例交互的本地驱动程序 ,mongoose是MongoDB的对象建模工具

Mongoose建立在MongoDB驱动程序之上,为程序员提供了一种对数据进行建模的方法。

编辑:我不想评论哪个更好,因为这会让这个答案变得流行。 不过,我将列举使用这两种方法的一些优点和缺点。

使用Mongoose,用户可以为特定集合中的文档定义模式。 它为MongoDB中数据的创建和管理提供了很多便利。 缺点是,学习猫鼬需要一些时间,并且在处理相当复杂的模式方面有一些限制。

但是,如果您的集合模式不可预知,或者您想在Node.js中使用类似Mongo-shell的体验,那么请继续并使用MongoDB驱动程序。 这是最简单的拿起。 这里的缺点是,你将不得不编写大量的代码来验证数据,错误的风险更高。


Mongo是NoSQL数据库。

如果你不想为你的数据模型使用任何ORM,那么你也可以使用本地驱动mongo.js:https://github.com/mongodb/node-mongodb-native。

Mongoose是Orm的一员,它让我们能够通过易于理解的查询访问mongo数据。

Mongoose扮演的角色是对数据库模型的抽象。


我发现两者之间的另一个差异是,使用mongodb native driver connect to multiple databases相当容易,而您必须在mongoose中使用仍存在一些缺陷的解决方法。

所以,如果你想要一个多租户应用程序,去mongodb本地驱动程序。

链接地址: http://www.djcxy.com/p/77935.html

上一篇: Difference between MongoDB and Mongoose

下一篇: AngularJS Service Passing Data Between Controllers