Mongo仅以ISO_8601格式存储日期而不是unix

时间:2016-10-06 06:54:57

标签: node.js mongodb unix iso8601

我试图以UNIX格式存储集合,但它每次都以ISO_8601格式存储。 以下是我的代码,请您快速浏览一下,告诉我哪里出错了?

var date = Date.now();

var comments = new Comments({
    item_id : req.params.item_id,
    content : req.body.content,
    created_at: date,
    updated_at : "",
    is_deleted : 0
});

评论模式

var CommentsSchema = new Schema({
    content: {type: String},
    item_id: {type: Number},
    created_at: {type: Date, default: Date.now},
    updated_at: {type: Date, default: Date.now},
    is_deleted: Number
});

但当我console.log()注释对象中的内容时,其显示日期为ISO_8601格式。我甚至尝试使用moment js同样但徒劳无功。

2 个答案:

答案 0 :(得分:2)

如果要在数据库中存储时间戳,则应在架构中使用type : Number,而不是type : Date

否则,当从数据库中读取数据时,Mongoose会自动将时间戳转换为正确的Date实例(您可以使用doc.created_at.getTime()从中提取时间戳)。

答案 1 :(得分:0)

  

Mongoose v4.x将时间戳记作为架构的内置选项

foo requires 0 arguments, 1 provided
var mySchema = new mongoose.Schema( {key:keyType,}, {timestamps: true} );
  

此选项会将var CommentsSchema = new Schema({ content: {type: String}, item_id: {type: Number}, is_deleted: Number },{timestamps: true}); createdAt属性updatedAttimestamped相加,并为您完成所有工作。更新请求更新文档,它更新updatedAt属性

示例

Date
  

默认情况下,两个字段的名称是createdAt和updatedAt,通过设置timestamps.createdAt和timestamps.updatedAt自定义字段名称。

有关详细信息,请参阅document