星空网 > 软件开发 > 数据库

Mongoose Schemas定义中timestamps选项的妙用

  在Node.js中使用MongoDB.aspx' >MongoDB少不了Mongoose。

  假设有如下Mongoose Schemas的定义:

var ItemSchema = new mongoose.Schema({  biz: String,  name: String,  tradeType: String,  totalFee: Number,  transactionId: String,  createTime: {    type: Date,    default: Date.now  },  updateTime: {    type: Date,    default: Date.now  }}, {  versionKey: false});

  我们希望在保存model数据时不用指定createTime字段的值,按照上述Schema的定义,createTime会自动保存为系统当前时间。当然,在更新model数据时updateTime字段的值也能自动保存为系统当前时间。但是这里有两个问题:

  1. Schema定义中含有default属性的字段在创建新文档时会自动生成值,但是如果数据库中缺少该字段,读取数据时也会自动生成值。例如上述schema所定义的表中先前保存进去的文档如果没有createTime字段,则读取数据时createTime字段的值默认都是系统当前时间。这显示不科学。

  2. 我们并不能做到在每次更新文档时自动更新updateTime字段的值,所以这里给updateTime字段设置default属性有点多余。

  那如何才能在schema定义中让MongoDB自动生成和管理createTimeupdateTime字段的值呢?答案是使用timestamps选项。有关timestamps选项的作用可以看官方文档的解释http://mongoosejs.com/docs/guide.html#timestamps

  我们将上述Schema的定义修改如下:

var ItemSchema = new mongoose.Schema({  biz: String,  name: String,  tradeType: String,  totalFee: Number,  transactionId: String,  createTime: {    type: Date,    default: Date.now  },  updateTime: {    type: Date,    default: Date.now  }}, {  versionKey: false,  timestamps: { createdAt: 'createTime', updatedAt: 'updateTime' }});

  添加了高亮显示的部分。timestamps选项会在创建文档时自动生成createAtupdateAt两个字段,值都为系统当前时间。并且在更新文档时自动更新updateAt字段的值为系统当前时间。如果想自定义这两个字段的名称,则可以使用上述高亮部分的定义方法。如果使用默认的字段名,则使用下面的定义方法即可:

timestamps: true

  在Mongoose中,定义数据库model schemas时使用timestamps选项可以给我们带来许多便利。在创建文档时不用在代码中去指定createTime字段的值,在更新文档时也不用去修改updateTime字段的值。




原标题:Mongoose Schemas定义中timestamps选项的妙用

关键词:Mongo

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

亚马逊大卖这么多,小卖家还有生存空间吗?:https://www.ikjzd.com/articles/108735
为了做跨境电商,我抵押了两套房:https://www.ikjzd.com/articles/108736
淘系卖家入场亚马逊?逊到底是“降维打击”还是“送人头”?:https://www.ikjzd.com/articles/108737
东南亚卖家注意! 越南加入亚马逊“全球开店”计划!:https://www.ikjzd.com/articles/108738
姐夫贝索斯将把AWS从亚马逊拆分?:https://www.ikjzd.com/articles/108739
干货实操,如何用shopee+软件做优质关键词:https://www.ikjzd.com/articles/10874
皇帝的皇宫=:https://www.vstour.cn/a/363188.html
海南岛琼海市旅游景点 琼海市的旅游景点:https://www.vstour.cn/a/363189.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流