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

cod*_*ode 48 mongoose mongodb node.js

我刚刚开始mongodb,我最近经历了Mongoose一个ODM框架.

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

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

请列出所有可能的优点和原因/需求Mongoose.

mok*_*oka 52

主要优点是纯粹的mongo抽象.

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

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

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

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

  • MongoDB 3.2版支持模式验证.我现在可以知道你还在你的项目中使用猫鼬吗?谢谢 (3认同)

Nic*_*eda 38

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

原因:

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

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

使用Mongoose的优点/缺点:

优点:

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

缺点

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

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