我很惊讶这个问题以前没有被问过,让我有点担心我能够理解我自己的工作方式....
在面向对象编程中,我们首先定义抽象,类,然后基于抽象实例化许多具体对象。
为什么我们需要使用Mongoose定义Schema和Model?这两个步骤不一样吗?
答案 0 :(得分:0)
简单的原因是"模型"和"架构"是两件完全不同的事情。
A"架构"定义类型约束和其他逻辑,而不是指你想要如何定义"一个东西。你有很多方法可以做到这一点,包括基本类型规则,直到定义某些验证方法,甚至动态场构建。 Schema基本上是对象的扩展定义。
A" model"实际上是一种“联系”的东西。存储。因为它意味着在&#34中定义了一些东西,其中"实际存储信息。 "方法"用于与存储交互的通常也与模型相关联。因此,基于模型关联,您可以save
,find
或delete
。 A"架构"因此可以"捆绑"对于各种"型号",因为模型是关于存储位置的。
所以在基本的猫鼬意义上,"架构"并不是必然与“一对一”联系在一起的东西。与"模型"的关系。模式可以有许多模型,因此可以进行分离。