node.js - 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 中,模式表示特定文档的结构,可以是完整的,也可以只是文档的一部分。这是一种表达预期属性和值以及约束和索引的方法。模型定义了用于与数据库交互(读取、插入、更新等)的编程接口(interface)。所以一个模式回答“这个集合中的数据会是什么样子?”并且模型提供了诸如“是否有与此查询匹配的记录?”之类的功能。或“向集合中添加新文档”。

在直接的 RDBMS 中,模式由 DDL 语句(创建表、更改表等)实现,而没有直接的模型概念,只有可以执行高度灵活查询的 SQL 语句(选择语句)以及基本的插入、更新、删除操作。

另一种思考方式是 SQL 的本质允许您通过仅选择特定字段以及将相关表中的记录连接在一起来为每个查询定义一个“模型”。

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

https://stackoverflow.com/questions/22950282/

相关文章:

mongodb - mongod.service 启动失败 : Unit mongod. 找不到服务

mongodb - MongoDB 中的 replaceOne() 和 updateOne() 有什

python - Django session

windows - 如何在 Windows 中连接到 MongoDB?

mongodb - Mongoose 和独特的领域

mongodb - MongoDB可靠吗?

mongodb - 是否可以展平 MongoDB 结果查询?

mongodb - 一个数据库的 Mongorestore 给我带来了麻烦

c# - MongoDB 和 C# : Case insensitive search

node.js - mongo 可以 upsert 数组数据吗?