为什么要使用Mongoose模型而不是模式/文档?
我很惊讶这个问题以前没有问过,让我有点担心我的能力,了解如何自己的事情工作….
在面向对象编程中,我们首先定义了抽象,类,然后基于抽象来实例化许多具体的对象。
为什么我们需要用Mongoose来定义Schema和Model? 这两个步骤不是一回事吗?
原因很简单,“模式”与“模式”是完全不同的东西。
-
一个“模式”定义了types约束和其他逻辑,而不是可以参考你想要如何“定义”一个对象。 你有很多方法来做到这一点,包括基本types规则,直到确定某些validation方法甚至是dynamic字段构造。 一个Schema基本上是一个对象的扩展定义。
-
一个“模型”实际上是与存储“联系”的东西。 这意味着在“哪里”定义了什么来实际存储信息。 用于与存储交互的“方法”通常也与模型相关联。 因此,您可以
save
,或根据模型关联find
或delete
。 因此,“模式”可以被“捆绑”到各种“模型”上,因为模型是关于存储位置的。
所以从基本的mongoose意义上来说,“模式”并不一定与“模式”“一对一”关联在一起。 一个模式可以有许多模型,因此分离。
- Node.js,Express,MongoDB和stream
- 在Node.js中使用MongoDB进行扩展,我应该什么时候一次查询所有的ID,并行查询每个ID?
- 在Mongoose中searchembedded对象
- 在MongoDB中更新一个数组
- Mongodb时区问题,按date过滤
- 什么是包含'ref'但不指定types的Mongoose模型属性?
- ReferenceError:mongoose没有被定义
- 首先请求在Windows Azure上使用MongoDB的node.js应用程序产生400个错误的请求
- 使用mongolab,nodejs和express提高AngularJS web应用程序的响应时间