我有这个猫鼬模式
const postSchema= new Schema({
body:{ type: String, required:true, validate:bodyValidators},
createdBy: { type: String},
to: {type:String, default:null },
createdAt: { type:Date, default:Date.now()},
likes: { type:Number,default:0},
likedBy: { type:Array},
dislikes: { type:Number, default:0},
dislikedBy: { type:Array},
comments: [
{
comment: { type: String, validate: commentValidators},
commentator: { type: String}
}
]
});
我的应用上的每个帖子都会在2017年8月20日晚上10:01返回,但我在这里的时间超过了2个小时。 这是HTML,我使用的是Angular4。
{{post.createdAt | date: 'MMM dd, yyyy'}} at {{post.createdAt | date:'shortTime'}}
我无法理解为什么
答案 0 :(得分:1)
Mongoose在您启动时接收值计算,而不是函数。你应该传递它而不是运行它。无论何时使用括号,您都在执行函数而不是引用它。我曾经遇到过同样的问题。
答案 1 :(得分:1)
在 mongoose 中,您可以执行以下操作。使用更新()或 findOneAndUpdate()
{upsert:true} 选项
你可以使用 $ setOnInsert ,而不必在每次调用新的MyModel()时都传递它们。
var update = {
updatedAt: new Date(),
$setOnInsert: {
createdAt: new Date()
}
};
答案 2 :(得分:0)
您以错误的方式分配了值。试试这个:
createdAt: {
type: Date,
default: Date.now
}
阅读此链接以进一步了解: http://mongoosejs.com/docs/guide.html