MongoDB和Mongoose的区别

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

所以为了回答这个问题,我问社区你是否可以解释这两者之间的区别? 如果可能的话,利弊呢? 因为他们看起来真的很像我

我假设你已经知道MongoDB是一个以BSON文档forms存储数据的NoSQL数据库系统。 你的问题是关于Node.js的包。

根据Node.js, mongodb是与mongodb实例交互的本地驱动程序 , mongoose是MongoDB的对象build模工具

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

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

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

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

Mongo是NoSQL数据库。

如果您不想为您的数据模型使用任何ORM( https://en.wikipedia.org/wiki/Object-relational_mapping ),那么您也可以使用本机驱动程序mongo.js https://github.com/mongodb / node-mongodb-native 。

Mongoose是为我们提供访问mongo数据function的orm之一,具有易于理解的查询。

mongoose作为抽象的angular色扮演你的数据库模型。

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

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

Mongodb和Mongoose是两个完全不同的东西!

Mongodb是数据库本身 ,而Mongoose是Mongodb 的对象build模工具

编辑:正如MongoDB指出的是npm包,谢谢!