为什么我们需要,使用mongoose有什么好处
我刚刚开始使用mongodb
,最近我通过了一个ODM框架Mongoose
。
在文档上,我找不到为什么我们需要使用Mongoose
。 我可以给的一个原因是我们可以从Mongoose
定义应用程序模式。
我正在寻找更多可能的原因,需要吸引我使用Mongoose
。
请列出为什么要使用Mongoose
所有可能的优点和原因/需求。
主要优点是对纯mongo的抽象。
许多来自SQL数据库types的开发人员对于没有定义结构的dynamic集合感到非常不舒服。 所以模式首先帮助。
此外,它实现validation和其他整洁的function,以确保您的架构是插入/更新/查找集合文件时一致。
它还创build了模型抽象,使其更容易处理,所以看起来像只使用对象而不是纯数据。
还有许多其他的好东西,如中间件 , 插件 , 人口 , validation 。 请检查mongoose文档以获取更多信息:
就个人而言,我更喜欢纯粹的mongo,因为它与官方的10gen mongo文档更加一致,并且不会产生总是会花费一些限制和规则的抽象,你必须遵循。
如果您正在使用Node.js,并且您是新的NoSQL,那么我build议您首先使用本地节点驱动程序(mongodb)。
原因:
-
节点驱动程序和Mongo shell之间的语法非常相似,所以您将更快地掌握如何使用MongoDB。
-
模型只有在您需要将大型API分解为一个M VC系统的大型应用程序(mongoose是您的模型)时才有用。
使用mongoose的优点/缺点:
优点:
- 最大的Pro是内置的数据validation(要求允许添加哪些数据或更新数据库)。 这将需要一些工作来build立自己(但不是很难)
- 它会从应用程序的其余部分抽象出大部分mongoDB代码。
缺点
-
最大的挑战就是从模式开始就会打败使用NoSQL的目的,在快速发展的阶段很难体会到松散的结构化数据系统的好处。
-
并不是所有的数据操作都能很好地融入可以用模型封装的特性。 封装在开始时尤其困难 – 除非在开始之前对数据stream有一个非常清晰的概念(这是理想的,但在构build新的概念上需要大量的实验和改变/重新devise时并不容易)。