为什么要使用Mongoose模型而不是模式/文档?

我很惊讶这个问题以前没有问过,让我有点担心我的能力,了解如何自己的事情工作….

在面向对象编程中,我们首先定义了抽象,类,然后基于抽象来实例化许多具体的对象。

为什么我们需要用Mongoose来定义Schema和Model? 这两个步骤不是一回事吗?

原因很简单,“模式”与“模式”是完全不同的东西。

  • 一个“模式”定义了types约束和其他逻辑,而不是可以参考你想要如何“定义”一个对象。 你有很多方法来做到这一点,包括基本types规则,直到确定某些validation方法甚至是dynamic字段构造。 一个Schema基本上是一个对象的扩展定义。

  • 一个“模型”实际上是与存储“联系”的东西。 这意味着在“哪里”定义了什么来实际存储信息。 用于与存储交互的“方法”通常也与模型相关联。 因此,您可以save ,或根据模型关联finddelete 。 因此,“模式”可以被“捆绑”到各种“模型”上,因为模型是关于存储位置的。

所以从基本的mongoose意义上来说,“模式”并不一定与“模式”“一对一”关联在一起。 一个模式可以有许多模型,因此分离。