72

我刚刚开始使用mongodb,最近我完成了Mongoose一个 ODM 框架。

在文档中,我找不到我们需要使用Mongoose. 我可以给出的一个原因是我们可以从Mongoose.

我正在寻找更多可能的原因,以及吸引我使用Mongoose.

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

4

2 回答 2

76

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

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

它还创建了模型抽象,使其更易于使用,因此看起来您只使用对象而不是纯数据。

还有许多其他好东西,例如中间件插件填充验证。请查看猫鼬文档以获取更多信息:

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

于 2013-08-30T11:29:30.570 回答
59

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

原因:

  1. Node Driver 和 Mongo shell 之间的语法非常相似,因此您将更快地掌握如何使用 MongoDB。

  2. 模型仅在您扩展到具有需要分解为M VC 系统(猫鼬是您的模型)的大型 API 的大型应用程序时才有用。

使用猫鼬的优点/缺点:

优点:

  • Biggest Pro 是它内置了数据验证(允许添加或更新数据库的数据的要求)。自己构建它需要一些工作。(但不是那么难)
  • 它将从应用程序的其余部分中抽象出大部分 mongoDB 代码。

缺点

  • 最大的骗局是从一开始就使用模式,这将真正违背使用 NoSQL 的目的,并且在快速开发阶段很难体验拥有松散结构化数据系统的好处。

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

于 2016-03-14T06:19:39.410 回答