为什么我们需要,使用mongoose有什么好处

我刚刚开始使用mongodb ,最近我通过了一个ODM框架Mongoose

在文档上,我找不到为什么我们需要使用Mongoose 。 我可以给的一个原因是我们可以从Mongoose定义应用程序模式。

我正在寻找更多可能的原因,需要吸引我使用Mongoose

请列出为什么要使用Mongoose所有可能的优点和原因/需求。

       

网上收集的解决方案 "为什么我们需要,使用mongoose有什么好处"

主要优点是对纯mongo的抽象。

许多来自SQL数据库types的开发人员对于没有定义结构的dynamic集合感到非常不舒服。 所以模式首先帮助。
此外,它实现validation和其他整洁的function,以确保您的架构是插入/更新/查找集合文件时一致。

它还创build了模型抽象,使其更容易处理,所以看起来像只使用对象而不是纯数据。

还有许多其他的好东西,如中间件插件人口validation 。 请检查mongoose文档以获取更多信息:

就个人而言,我更喜欢纯粹的mongo,因为它与官方的10gen mongo文档更加一致,并且不会产生总是会花费一些限制和规则的抽象,你必须遵循。

如果您正在使用Node.js,并且您是新的NoSQL,那么我build议您首先使用本地节点驱动程序(mongodb)。

原因:

  1. 节点驱动程序和Mongo shell之间的语法非常相似,所以您将更快地掌握如何使用MongoDB。

  2. 模型只有在您需要将大型API分解为一个M VC系统的大型应用程序(mongoose是您的模型)时才有用。

使用mongoose的优点/缺点:

优点:

  • 最大的Pro是内置的数据validation(要求允许添加哪些数据或更新数据库)。 这将需要一些工作来build立自己(但不是很难)
  • 它会从应用程序的其余部分抽象出大部分mongoDB代码。

缺点

  • 最大的挑战就是从模式开始就会打败使用NoSQL的目的,在快速发展的阶段很难体会到松散的结构化数据系统的好处。

  • 并不是所有的数据操作都能很好地融入可以用模型封装的特性。 封装在开始时尤其困难 – 除非在开始之前对数据stream有一个非常清晰的概念(这是理想的,但在构build新的概念上需要大量的实验和改变/重新devise时并不容易)。