每次用户登录时,我都会尝试在我的mongoose用户架构中更新上次登录的字段。
在用户模式中,我有这个,所以在创建用户时,最后一次登录是创建的日期:
lastLogin: {
type: Date,
default: Date.now
}
在我的路线中,我有这个,我试图将lastLogin
更新到用户登录的时间,但它要么回来,那么更新不是功能,要么根本不工作:
User.findById(req.user._id, function(err, foundUser) {
if (err) {
console.log(err);
} else {
console.log("Found user last login is ");
console.log(foundUser.lastLogin)
foundUser.lastLogin.update({$set: {'lastLogin': Date.now()}});
console.log("new last login is")
console.log(foundUser.lastLogin)
}
});
答案 0 :(得分:0)
这就是你这样做的方式
foundUser.update({$set: {'lastLogin': Date.now()}}, function(err,user){
console.log("new last login is")
console.log(user.lastLogin)
});
你所做的是update
上的lastLogin
,它没有任何update
方法,因为它是属性而不是文档。
或者你只需findByIdAndUpdate
与mongoose
版本4+就可以完成所有这些
User.findByIdAndUpdate(req.user._id, { $set: { lastLogin: Date.now() }}, {new: true}, function(err,user){
console.log("new last login is")
console.log(user.lastLogin)
})
new: bool
- 如果返回修改后的文档而不是原始文档,则为true。默认为false