Node.js日期对象存储在MongoDB中作为" 1970-01-01T00:00:00.001Z"

时间:2015-04-26 23:41:46

标签: node.js mongodb datetime mongoose compose

我有一个Node.js应用程序,我使用Mongoose在Compose.io上与MongoDB连接。这里有一些代码应该将当前日期和时间存储在我的数据库中:

signup.Volunteer.find({_id : uniqueid.toObjectId()}, function(err, doc){
    var volunteer = doc[0];
    var date = new Date();
    console.log(date.toString());
    //volunteer.time_out is an array
    //defined in Volunteer Schema as: 'time_in : [Date]'
    volunteer.time_in = volunteer.time_in.push(date);
    volunteer.save(function(err){
        ...
    });
});
....

如果我将这些日期对象打印到控制台,我会得到正确的日期。但是,当我将对象存储在我的数据库中时,它被存储为" 1970-01-01T00:00:00.001Z"。有什么想法会发生这种情况吗?

2 个答案:

答案 0 :(得分:2)

问题是您要将volunteer.time_in.push的返回值分配回volunteer.time_in。返回值是数组的新长度,而不是数组本身。

所以将该行更改为:

volunteer.time_in.push(date);

答案 1 :(得分:0)

检查数据库中的日期格式。 MongoDB日期格式为YYYY-MM-DD