刚刚看,有点乱,主要解释以下三点,配上可视化数据库界面截图,方便理解 Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对 Entity : 由Model创建的实体,他的操作也会影响数据库 ### Mongoose 入门知识点详解 #### 一、前言 Mongoose 是 Node.js 下一个优秀的 MongoDB 对象建模工具,旨在为 MongoDB 提供一种简洁、灵活的方式进行数据建模。Mongoose 支持复杂的查询,同时具备数据验证、中间件、钩子等功能。本文将详细介绍 Mongoose 的三个核心概念:Schema、Model 和 Entity,并通过具体示例来帮助理解。 #### 二、Schema **定义:** - **Schema** 是一种用于定义 MongoDB 数据库模型结构的文件,它是数据库模型的骨架,不具有数据库的操作能力。 - 在 Mongoose 中,Schema 定义了文档的结构,包括字段的数据类型以及验证规则等。 - Schema 只是对数据结构的一种描述,并非实际存在的数据库对象。 **作用:** - Schema 用于定义文档的结构,规定了文档中应该包含哪些字段,以及每个字段的类型和约束条件。 - 它有助于开发者明确地定义数据结构,提高代码的可读性和维护性。 - Schema 还可以进行数据验证,确保存储的数据符合预设的格式和逻辑。 **示例代码:** ```javascript const kittySchema = new mongoose.Schema({ name: String }); ``` #### 三、Model **定义:** - **Model** 是由 Schema 发布生成的模型,具有抽象属性和行为的数据库操作对。 - Model 是 Schema 的实例化版本,通过 Model 可以进行 CRUD 操作。 - 每个 Model 都对应着 MongoDB 中的一个集合(collection)。 **作用:** - Model 是连接应用程序与 MongoDB 的桥梁,提供了对数据库的增删查改操作。 - 通过 Model,可以方便地对数据进行查询、更新、删除等操作。 - Model 还可以根据 Schema 中定义的规则对数据进行校验。 **示例代码:** ```javascript const Kitten = mongoose.model('Kitten', kittySchema); ``` #### 四、Entity **定义:** - **Entity** 是由 Model 创建的实体,它的操作也会影响数据库。 - Entity 是基于 Model 创建的具体数据实例。 - 每当通过 Model 创建一个新的文档时,都会得到一个 Entity。 **作用:** - Entity 是具体的数据库记录,表示一个特定的对象实例。 - Entity 可以调用 Model 上定义的方法进行数据库操作,例如保存、更新等。 - 通过对 Entity 的操作,可以直接影响数据库中对应的数据。 **示例代码:** ```javascript const silence = new Kitten({ name: 'Silence' }); ``` #### 五、具体应用实例 1. **连接 MongoDB:** ```javascript var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test'); ``` 2. **定义 Schema:** ```javascript const kittySchema = new mongoose.Schema({ name: String }); ``` 3. **创建 Model:** ```javascript const Kitten = mongoose.model('Kitten', kittySchema); ``` 4. **创建 Entity:** ```javascript const silence = new Kitten({ name: 'Silence' }); console.log(silence.name); // 'Silence' ``` 5. **添加方法:** ```javascript kittySchema.methods.speak = function () { var greeting = this.name ? "Meow, name is " + this.name : "I don't have a name"; console.log(greeting); }; ``` 6. **保存数据:** ```javascript silence.save(function (err, silence) { if (err) return console.error(err); silence.speak(); }); ``` 7. **查询数据:** ```javascript Kitten.find(function (err, kittens) { if (err) return console.error(err); console.log(kittens); }); ``` 8. **查询特定数据:** ```javascript Kitten.find({ name: /^Fluff/ }, callback); ``` #### 六、总结 通过本篇介绍,我们可以了解到 Mongoose 中的核心概念 Schema、Model 和 Entity 的基本用法及应用场景。Schema 作为数据结构的骨架,定义了文档的基本结构;Model 作为 Schema 的实例,提供了一系列用于操作数据库的方法;而 Entity 则是在 Model 基础上创建的具体数据实例,可以直接与数据库交互。通过这三个核心概念,Mongoose 为开发者提供了高效便捷的方式来管理和操作 MongoDB 数据库。 以上内容详细介绍了 Mongoose 中的 Schema、Model 和 Entity 的概念及其在实际开发中的应用。希望本文能够帮助大家更好地理解和使用 Mongoose 进行数据库操作。


























- 粉丝: 54
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 国家开放大学网络核心课程运行探究.docx
- XX软件有限公司人力资源规划(doc).doc
- 数学教学中如何运用计算机技术.docx
- 单片机任务书(寻迹小车设计).doc
- 云计算加速未来.pptx
- 物联网智慧社区云对讲系统技术方案.doc
- 机械手设计方案论文-关于PLC控制的智能机械手设计方案探究.doc
- 基于神经网络模型的空燃比非线性模型预测控制.docx
- 大学计算机考试试题.doc
- 电子商务行业发展研究报告.pptx
- 物联网与工业自动化的关系.ppt
- 计算机网络通信协议的分析研究.docx
- C语言课程设计方案:学生宿舍管理系统[].doc
- 基于RFID的传感器网络.doc
- 信息化教学设计实施方案高中语文《再别康桥》.doc
- 粉色花卉水彩卡通信纸word信纸模板.docx


