Node.js 存储在 MongoDB 中的日期对象为“1970-01-01T00:00:00.001Z”
Node.js Date Objects stored in MongoDB as "1970-01-01T00:00:00.001Z"
我有一个 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”。知道为什么会这样吗?
检查数据库中的日期格式。 MongoDB 日期格式为 YYYY-MM-DD
问题是您将 volunteer.time_in.push
的 return 值分配回 volunteer.time_in
。 return 值是数组的新长度,而不是数组本身。
因此将该行更改为:
volunteer.time_in.push(date);
我有一个 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”。知道为什么会这样吗?
检查数据库中的日期格式。 MongoDB 日期格式为 YYYY-MM-DD
问题是您将 volunteer.time_in.push
的 return 值分配回 volunteer.time_in
。 return 值是数组的新长度,而不是数组本身。
因此将该行更改为:
volunteer.time_in.push(date);