Mongodb时间戳非常不准确 - 猫鼬

Ree*_*ece 2 mongoose mongodb node.js

我使用mongoose在mongodb中存储对象,我使用Date.now()记录createdAt日期

我发现的是错误的时间存储在数据库中.差异非常零星,已经过了7天,3天甚至5分钟.

就在今天早上我在上午8点(格林威治标准时间+10)AEST创建了一个对象,但是数据库中的时间早于7天.

这是数据库对象:

{
  "_id": "554bdfaf797cb8e02753e06f",
  "description": "test d",
  "createdBy": "testuser",
  "key": "f1a593f4dd51e632388a1755e09a7b4dc0bc0e24ef8bcf5cf859ac759a45e8a6",
  "__v": 0,
  "files": [],
  "createdAt": "2015-05-01T05:42:07.687Z"
}
Run Code Online (Sandbox Code Playgroud)

我在mac和win 7上都看到了这个问题.

首先注意到mongodb 2.6.3版,刚升级到3.0.2,没有变化.

更新

我在架构中设置createdAt日期,如下所示:

var uploadSchema = new Schema({
    createdAt: {
        type: Date,
        required: true,
        default: Date.now()
     },
Run Code Online (Sandbox Code Playgroud)

我的数据库和应用程序在同一主机上运行.

请点击此处 - https://gist.github.com/reecefenwick/1bcff85d18406b33e5cf

Joh*_*yHK 6

发生的事情是,您在定义架构时调用 Date.now()以设置默认值createdAt,然后在下次重新启动应用程序之前,该值将用于默认值.

相反,您希望将默认值设置为Date.now函数本身,以便每次创建新文档时都会调用它:

var uploadSchema = new Schema({
    createdAt: {
        type: Date,
        required: true,
        default: Date.now
     },
Run Code Online (Sandbox Code Playgroud)