[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分頁