2013-08-30 125 views
28

我刚刚开始使用mongodb,最近我经历了ODM框架Mongoose我们为什么需要,使用猫鼬有什么好处

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

我在寻找更多可能的原因和需求,这将吸引我使用Mongoose

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

+3

为什么选择Node.js的?为什么选择MongoDB?这些类型的问题通常不适合StackOverflow。 – WiredPrairie

回答

35

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

许多来自SQL数据库类型的开发人员对使用没有定义结构的动态集合感到非常不舒服。所以模式在第一位有帮助。
此外,它还实现了验证和其他整洁功能,以便在从集合中插入/更新/查找文档时确保您的模式一致。

它也创建了模型抽象,使它更容易使用,所以它看起来像你只使用对象而不是纯数据。

还有许多其他的东西像中间件插件人口验证。请查看mongoose docs了解更多信息:

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

+0

其实,即使我用猫鼬,因为它的模式是让预先定义的模型很喜欢,我无论如何也解决的问题以下问题的发现,所以我怕我会从项目中删除猫鼬,并保持没有它将会: https://stackoverflow.com/questions/47780700/objectparametererror-parameter-obj-to-document-must-be-an-object-in-mongoos –

17

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

原因:

  1. 节点驱动程序和蒙戈外壳之间的语法非常相似,所以你会得到如何在一般使用MongoDB的更快的把握。当你缩放与需要被分解成中号 VC系统(猫鼬是您的型号)大API一个大的应用程序

  2. 模型是唯一有用的。使用

优点/缺点猫鼬:

优点:

  • 最大Pro是它具有内置到它(的哪些数据将允许要求数据验证添加或更新您的数据库)。你需要一些工作来建立你自己。(但并不难)
  • 它将抽象大部分从应用程序的其余MongoDB的代码了。

缺点

  • 最大的骗子开始了与架构出了大门真的会破坏使用NoSQL的目的,这将是很难体验到什么是好的关于有一个松散的结构化数据系统在快速发展阶段。

  • 并非所有的数据操作都将很好地适应,可以与模型内封装的表征。封装在开始时特别困难 - 除非您在开始之前对数据流有一个非常清晰的概念(这是理想的,但在构建概念上新的东西并且需要大量实验和更改/重新设计时并不容易)。

相关问题