我刚开始使用mongodb
,我最近浏览了Mongoose
,这是一个ODM框架。
在文档中,我找不到为什么需要使用Mongoose
。我可以给出的一个原因是我们可以从Mongoose
定义应用程序模式。
我正在寻找更多可能的原因,以及吸引我使用Mongoose
的需求。
请列出使用Mongoose
的所有可能优势和原因/需求。
答案 0 :(得分:46)
主要优势是对纯蒙戈的抽象。
许多来自SQL数据库类型的开发人员对使用没有定义结构的动态集合感到非常不舒服。所以架构首先有助于此 此外,它还实现了验证和其他简洁功能,以确保在从集合中插入/更新/查找文档时,您的模式是一致的。
它还创建了模型抽象,使其更易于使用,因此看起来您只使用对象而不是纯数据。
还有许多其他好东西,如中间件,插件,人口,验证。请查看mongoose docs以获取更多信息:
就个人而言,我更喜欢纯粹的mongo,因为它与官方10gen mongo文档更加一致,并且不会创建总是需要遵循的限制和规则的抽象。
答案 1 :(得分:33)
如果您正在使用Node.js并且您是非常新的NoSQL,我建议您首先使用本机节点驱动程序(mongodb)。
<强>理由:强>
Node Driver和Mongo shell之间的语法非常相似,因此您可以更快地掌握如何使用MongoDB。
模型仅在扩展到具有大型API的大型应用程序时才有用,该API需要分解为 M VC系统(mongoose是您的模型)。
使用Mongoose的优点/缺点:
优点:
缺点
最大的骗局是从门外开始使用模式将真正打败使用NoSQL的目的,在快速开发阶段很难体验到松散的结构化数据系统的优点。
并非所有数据操作都能很好地适应可以用模型封装的特征。最初封装尤其困难 - 除非您在开始之前对数据流有一个非常清楚的想法(这是理想的,但是当您构建概念上新的并且需要大量实验和更改/重新设计时)并不容易。