我试图以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
同样但徒劳无功。
答案 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
属性updatedAt
与timestamped
相加,并为您完成所有工作。更新请求更新文档,它更新updatedAt属性
示例强>
Date
默认情况下,两个字段的名称是createdAt和updatedAt,通过设置timestamps.createdAt和timestamps.updatedAt自定义字段名称。
有关详细信息,请参阅document