mongoose:模式与模型?

在看教程的时候,模式和模型之间经常会有划分,特别是在处理mongoose/蒙戈德(mongoose / mongodb)时。 这使得移植到postgresql有点混乱,因为“模型”似乎不存在于该系统下。 这两种方法有什么区别?

例如,什么是这个行的postgres / sql ORM等价物?

(mongoose和express.js):

var userSchema = schema.define('local', { username: String, password: String, }); module.exports = mongoose.model('User', userSchema); 

在mongoose中,模式表示特定文档的结构,完全或仅仅是文档的一部分。 这是expression期望的属性和值以及约束和索引的一种方式。 模型定义了与数据库交互的编程接口(读取,插入,更新等)。 那么一个模式就会回答“这个集合中的数据是什么样的?” 和一个模型提供的function,如“是否有任何logging匹配此查询?” 或“将新文档添加到集合”。

在直接的RDBMS中,模式是通过DDL语句(create table,alter table等)实现的,而模型没有直接的概念,只有SQL语句可以做高度灵活的查询(select语句)以及基本的insert,update ,删除操作。

另一种思考的方式是SQL的本质允许您为每个查询定义一个“模型”,只需select特定的字段以及将相关表中的logging连接在一起即可。

在Ruby on Rails等其他ORM系统中,模式是通过ActiveRecord机制定义的,模型是Model子类添加的额外方法,用于定义附加的业务逻辑。