在阅读教程时,通常会对模式和模型进行描述,尤其是在处理mongoose/mongodb时.

例如,这一行的postgres/sql ORM类似功能是什么?

(mongoose and express.js):

var userSchema = schema.define('local', {
    username:       String,
    password:       String,
});

module.exports = mongoose.model('User', userSchema);

推荐答案

在mongoose中,模式表示特定文档的 struct ,可以是文档的全部或部分.这是一种表达预期属性和值以及约束和索引的方法.模型定义了一个与数据库交互的编程接口(读取、插入、更新等).因此,模式会回答"这个集合中的数据是什么样子的?"模型提供了类似"是否有任何记录与此查询匹配"的功能或"向Collection 中添加新文档".

在直接关系数据库管理系统中,模式是由DDL语句(创建表、更改表等)实现的,而模型没有直接的概念,只有SQL语句可以执行高度灵活的查询( Select 语句)以及基本的插入、更新和删除操作.

另一种思考方式是,SQL的本质允许您通过只 Select 特定字段以及将相关表中的记录连接在一起, for each 查询定义一个"模型".

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

Node.js相关问答推荐

promise 所有映射或反对

为高流量网站优化Node.js实时通知服务

当建议在第二代上运行云功能时,现在是否有新的Firestore AdminClient可供使用?

获取驱动器文件夹的直接子文件夹时出现问题

EJS ForEach循环标记

Node js 处理回调和 Promise

Nest Js - 在 multer 拦截器中如何设置最大文件上传大小并进行可选文件上传

Node.js中使用ffmpeg如何获取视频截图的位置?

找不到模块bcryptjs

如何在mongoose 聚合中执行全文搜索

如何解决这个关于 TaskRunner 的 Node/Express 代码问题?

类 WebSwapCGLLayer 在 Mac OS X /System 和 node_modules 中都实现了

在 Mongoose 中创建外键关系

添加git信息到create-react-app

Node.js + Express:应用程序不会开始监听端口 80

User.findOrCreate 函数是做什么的,什么时候在Passport 中调用它?

Bootstrap 中的 Grunt 依赖冲突

未在 Windows 8.1 上构建的 node 包 - 缺少 Microsoft.Cpp.Default.props

将 NodeJS 用于大型项目

找不到在 docker compose 环境中运行的 node js 应用程序的模块