每次用户使用mongoose的fineoneandupsupdate更新我的应用程序时,我都试图更新日期功能。最初创建新用户时,一切都将正确设置。但是,当系统去更新一个已经存在的用户时,它会更新我告诉它的日期功能,而且还会强制将字符串数组变回为空数组。
这是我的模式:
var userSchema = new Schema({
_id: mongoose.Schema.Types.ObjectId,
spuser_EID: String,
taken_onboarding_survey: Boolean,
our_last_seen: Date,
surveys_taken: [String]
});
这是我要告诉其用作更新的新用户:
var updateUser = new User({
"our_last_seen": new Date().getTime()
});
这是该用户对象进入之前的控制台日志:
{ surveys_taken: [], our_last_seen: 2018-08-09T17:35:58.756Z }
这是findoneandupdate调用:
User.findOneAndUpdate({
spuser_EID: params["userEID"]
},
updateUser,
{
upsert: true,
new: true
},
function(err, userdoc) { // callback
if (err) {
// handle error...
} else {
// handle document...
基本上,我希望它不更新该数组,同时仍要更新“ our_last_seen”功能。我不确定导致错误的原因,尤其是因为我尚未在架构中设置默认值。我完全迷住了,所以如果我错过了任何其他信息,请告诉我。您能提供的任何帮助将不胜感激。
谢谢!