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

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


当前回答

如果您计划将这些组件与您的专有代码一起使用,请参考以下信息。

Mongodb:

它是一个数据库。 该组件由Affero通用公共许可证(AGPL)许可证管理。 如果你将这个组件与你的专有代码一起链接,那么你必须在公共领域发布你的整个源代码,因为它的病毒效应,如(GPL, LGPL等) 如果你在云上托管你的应用程序,(2)将适用,而且你必须向最终用户发布你的安装信息。

猫鼬:

它是一个对象建模工具。 该组件由MIT许可证管理。 允许与专有代码一起使用该组件,没有任何限制。 允许使用任何媒体或主机传送应用程序。

其他回答

对于新开发人员来说,mongodb -db可能不是一个很好的选择。 另一方面,mongoose作为ORM(对象关系映射)对于新手来说是一个更好的选择。

我发现两者之间的另一个区别是,使用mongodb本地驱动程序连接多个数据库相当容易,而在mongoose中使用仍然有一些缺点的工作方法。

所以如果你想要一个多租户应用程序,选择mongodb原生驱动。

MongoDB是官方的MongoDB Node.js驱动程序,允许Node.js应用程序连接到MongoDB并处理数据。 另一方面,Mongoose是建立在mongoDB之上的其他库。它更容易理解和使用。如果你是一个初学者,猫鼬是更好的为你工作。

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

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

编辑:如上所述,MongoDB是npm包,谢谢!

如果您计划将这些组件与您的专有代码一起使用,请参考以下信息。

Mongodb:

它是一个数据库。 该组件由Affero通用公共许可证(AGPL)许可证管理。 如果你将这个组件与你的专有代码一起链接,那么你必须在公共领域发布你的整个源代码,因为它的病毒效应,如(GPL, LGPL等) 如果你在云上托管你的应用程序,(2)将适用,而且你必须向最终用户发布你的安装信息。

猫鼬:

它是一个对象建模工具。 该组件由MIT许可证管理。 允许与专有代码一起使用该组件,没有任何限制。 允许使用任何媒体或主机传送应用程序。