我们为啥需要,使用猫鼬有啥优势[关闭]

Posted

技术标签:

【中文标题】我们为啥需要,使用猫鼬有啥优势[关闭]【英文标题】:Why do we need, what advantages to use mongoose [closed]我们为什么需要,使用猫鼬有什么优势[关闭] 【发布时间】:2013-09-03 02:40:57 【问题描述】:

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

在文档中,我找不到我们需要使用Mongoose 的原因。我可以给出的一个原因是我们可以从 Mongoose 定义应用程序架构。

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

请列出使用Mongoose的所有可能优势和原因/需求。

【问题讨论】:

为什么选择 Node.JS?为什么选择 MongoDB?这些类型的问题通常不适合 ***。 【参考方案1】:

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

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

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

还有很多其他的好东西,例如 middlewarepluginspopulationvalidation。更多信息请查看mongoose docs:

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

【讨论】:

实际上,尽管我喜欢使用 mongoose,因为它的模式允许预定义模型,但我无论如何都找不到解决问题中的问题,所以恐怕我会从项目并继续没有它:***.com/questions/47780700/… MongoDB 3.2 版支持架构验证。我现在可以知道,你还在你的项目中使用猫鼬吗?谢谢【参考方案2】:

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

原因:

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

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

使用 Mongoose 的优缺点:

优点:

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

缺点

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

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

【讨论】:

以上是关于我们为啥需要,使用猫鼬有啥优势[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

猫鼬有条件地填充子文档

为啥我们需要 void 函数? [关闭]

为啥我们需要使用 Android Studio 来构建 Flutter 应用? [关闭]

为啥要使用easyui这些框架,这些框架的优势是啥,有啥好处,主要是用在啥方面

为啥需要猫鼬填充?

Spark Transformation - 为啥它是懒惰的,有啥优势?