首页 > 解决方案 > 更新猫鼬包后日期时间格式的变化

问题描述

我在 Mongodb 上的数据文档看起来像这样 -

{
    "_id" : ObjectId("5c6a2c118983c210d8ed66b7"),
    "team" : 1,
    "player" : ObjectId("5c68e63e8983c210d8ed66af"),
    "player_type" : "striker",
    "player_timestamp" : ISODate("2019-02-18T03:52:49.371Z"),
    "__v" : 0
}

我的数据模型看起来像 -

var playerSchema = new Schema({
  player: {type: Schema.Types.ObjectId, required: true, ref: 'User'},
  team: {type: Number, required: true},
  player_type: {type: String, required: true},
  player_timestamp: {type: Date, required: true, get: function(value) {
    return value && moment(value).format('x');
  }},
}, {timestamps: true});

我已经使用mongoose 5.1.3了一段时间,并且 player_timestamp 的日期以纪元时间格式返回。

我最近升级到mongoose 5.4.12并注意到时间戳返回为2019-02-18T03:52:49.392Z.

如何确保mongoose 5.4.12像以前一样返回纪元时间?

编辑:我不知道为什么这被标记为重复只是因为它提到了纪元时间和猫鼬。这与其他问题完全不同,因为此问题仅在我升级到新版本的猫鼬后才出现。这里有问题的猫鼬的新版本(5.4.12)仅在 2 个月前发布,这个问题已经有将近 6 年的历史了。所以在 5.1.3 和 5.4.12 之间发生了一些变化。改变了什么?如何在不重新更改代码的情况下从 5.1.3 恢复行为?

标签: node.jsmongodbmongoose

解决方案


推荐阅读