[TOC]
### mongoose 自动记录时间戳
* [ ] 需求分析
>[info]在我们定义mongoose-schema时,如果加入数据创建时间与数据最后修改时间会大大提高数据表的可维护性和规范性。之前我们的做法是定义两个字段(数据类型为Date),操作数据表时获取当前的时间戳记录下来,每次修改都将修改时间做更新。
* [ ] 更好的方案:
使用mongoose新增的内置时间戳记录。关键代码如下:
```
{
timestamps: {
createdAt: 'created',
updatedAt: 'updated'
}
}
```
>[danger]其中created和updated为自动记录时间的字段名,分别记录创建时间与更新时间,可以自定义。
数据表中存储的数据会相应的加入如下两条字段。
```
"updated": "2017-10-24T11:03:29.142Z",
"created": "2017-10-12T03:56:04.342Z",
```
* [ ] 下面给出mongoose-Schema的完整demo
```
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var AboutSchema = new Schema({
title: {
type: String,
require: true,
default: 'About information'
},
text: {
type: String,
require: true
},
}, {timestamps: {createdAt: 'created', updatedAt: 'updated'}});
module.exports = mongoose.model('about', AboutSchema, 'about');
```
- 序言
- ES6模块化
- node基础
- FS模块
- 常用变量
- crypto加密
- 基础
- 安装
- 中间件
- 架构
- 结构分层
- 配置
- 路由
- 安装路由
- 自动加载
- 获取参数
- 路由前缀
- 路由中间件
- 控制器
- 请求
- 请求信息
- 数据库
- mongoDB
- mongoDB原生语句
- mongoDB数据库角色
- mongoose连接数据库
- 自动记录时间戳
- 模型
- mongoose模型
- 定义
- 模型初始化
- 查询
- 新增
- 更新
- 删除
- 隐藏字段
- 模式
- 关联查询
- 复杂模型
- 仿知乎个人资料建模
- 关注与粉丝
- 视图
- 模板
- edge
- 日志
- 错误和调试
- 调试当前文件
- nodemon调试
- 异常处理
- Koa2错误处理
- 验证
- Koa验证器
- async-validator
- installation
- 安全
- 数据加密
- 杂项
- jwt
- koa-jwt
- env环境变量配置
- 上传
- 分页和模糊搜索
- 扩展
- nodemon
- bodyparser
- koaJsonError
- cross-env
- uuid生成唯一ID
- pope字符串模板引擎
- 命令行
- 部署
- 附录
- RESTfulApi
- Http动词
- 状态码
- 调用频率限制
- 按需查询字段
- restful分页