资讯专栏INFORMATION COLUMN

mongoose的date类型和timestamps的使用

zhou_you / 3207人阅读

摘要:注意,更新时必须先关闭选项,否则更新创建时间不会成功在数据库检查两个字段都有数据后,再开启

今天在用mongoose获取数据时,发现createdAt 和 updatedAt 两个时间类型的数据一直在变化,数值等于服务器时间,经过一番排查,终于找到了原因

mongoose的Schema有Date类型,可以设置为updatedAt: { type: Date, default: Date.now },看起来就是设置了一个日期类型,并且默认值为当前时间

其实这个default: Date.now 不能多带带使用,否则根本不会将updatedAt这个字段保存到数据库中,每次拉取数据时,直接去了服务器当前时间填充这个字段,因此出现上述的现象

结合 timestamps: { createdAt: "createdAt", updatedAt: "updatedAt" } 才能达到保存创建时间和更新时间的目的
参考:http://mongoosejs.com/docs/gu...


但是,已经创建的数据,即使后来添加了timestamps: { createdAt: "createdAt", updatedAt: "updatedAt" } ,也不会自动更新创建时间和保存时间两个字段。这时,必须手动更新这两个字段,保证这两个字段都有数据后,开启timestamps才有效。注意,更新时必须先关闭timestamps选项,否则更新创建时间不会成功!在数据库检查两个字段都有数据后,再开启timestamps

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/19278.html

相关文章

  • mongoose学习笔记(超详细)

    摘要:返回的是转换为字符串后的值。默认行为禁止在一个中如果没有定义域,那么将会默认分配一个域。通过在中设置这个字段可以阻止生成获得。我们也能设置其它的安全等级如表示如果秒内写操作没有完成,将会超时。在,和方法只检查顶级的的选项设置。 原文出处 名词解释 Schema: 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model: 由Schema编译而成的假想(fancy)构造器...

    Bowman_han 评论0 收藏0
  • vue+express+mongoose项目构建

    摘要:注仅做记录使用又不舍得删除推荐使用相关资料很多的运行环境构建基于全局安装安装过程略配置的淘宝镜象全局安装官方脚手架工具官网文档创建项目基于模板创建创建配置按需,我除了安装之外其他都选了运行与打包测试安装依赖包运行打包配 注(2018-2-12):仅做记录使用,又不舍得删除,推荐使用koa2,koa2相关资料很多的~ 1. 运行环境构建(基于macOS Sierra 10.12.4) ...

    SKYZACK 评论0 收藏0
  • Sequelize Model

    摘要:定义默认值和是否为空默认时间为创建时间设置为将会在数据表中添加列如果查询时该列为数据库会抛出错误如果你想在查询前检查该值是否为,看一下下面的验证部分可以是或如果多个列是相同就会变成会创建索引也可以这么创建索引主键自动增量在可以有可以通过属性 定义Model import sequelize from sequelize var Foo = sequelize.define(foo, ...

    andong777 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<