mongoose模块
一. 概念:
介绍:是一个第三方模块, 作用:方便在nodejs代码中操作mongodb
GitHub 地址: https://github.com/Automattic/mongoose
★ nodejs-mongo-mongod关系图:
二、mongoose主要知识点:
1. _id 是 mongodb 集合中的默认主键. 是唯一的.
2. schema 、 model 与 entity 的关系: 符合ORM
★ ORM 对象数据绑定文档集合,对象在文档就在,对象不再文档也就不再。
## 类比: 生产瓶盖
Schema(架构) => 模具设计稿
Model(模型) => 模具
Entity(实体) => 瓶盖
## mongoose 命名时的推荐: 为了方便好记
UserSchema UserModel UserEntity
ArticleSchema ArticleModel ArticleEntity
GoodsSchema GoodsModel GoodsEntity
3. 一般集合数据表名定义为英文单词单数,mongoose 会自动将集合名称变成复数.
4. schema设定文档字段允许的字段类型:
String
Number
Date
Buffer (字符串类型)
Boolean
Mixed (任意类型)
ObjectId (主键信息数字ID)
Array
三. 代码使用:
1. 进入工作目录: cd 文件夹路径
2. 安装: cnpm install mongoose --save
3. 操作: 代码栗子链接
3.1 插入数据
//实体对象 var ArticleEntity = new ArticleModel({ title: 'cctv', content: '下雨天', author: 'xf', date: Date.now(), click: 1 }); //写入 save 保存 ArticleEntity.save(function(err, doc){ if(err){ console.log(err) }else{ console.log(doc); } mongoose.connection.close(); })
//1. 引入mongoose var mongoose = require('mongoose'); //2. 连接mongodb数据库 mongoose.connect('mongodb://localhost/db3'); //3. 定义文档结构 var UserSchema = new mongoose.Schema({ username: String, password: String, }, {versionKey: false}); //4. 定义模型 var UserModel = mongoose.model('user', UserSchema); //5. 创建实体 var UserEntity = new UserModel({ username: 'admin', password: 'adminxxxxx' }); //6. 写入数据库 UserEntity.save(function(err, user){ if(err){ console.log(err); }else{ console.log(user); } //7. 关闭连接 mongoose.connection.close(); });