Javascript Mongoose在更新时将数组更新为默认值
我正在尝试使用mongoose的FineOne和upsert更新功能,在每次用户单击我的应用程序时更新日期功能。当一个新用户最初被创建时,一切都得到了正确的设置。但是,当系统更新一个已经存在的用户时,它会更新我告诉它的日期功能,但也会强制字符串数组变回空数组 以下是我的模式:Javascript Mongoose在更新时将数组更新为默认值,javascript,mongodb,mongoose,mongoose-schema,Javascript,Mongodb,Mongoose,Mongoose Schema,我正在尝试使用mongoose的FineOne和upsert更新功能,在每次用户单击我的应用程序时更新日期功能。当一个新用户最初被创建时,一切都得到了正确的设置。但是,当系统更新一个已经存在的用户时,它会更新我告诉它的日期功能,但也会强制字符串数组变回空数组 以下是我的模式: var userSchema = new Schema({ _id: mongoose.Schema.Types.ObjectId, spuser_EID: String,
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...
基本上,我希望它在更新“我们最后一次看到”功能的同时不更新该数组。我不确定是什么导致了错误,特别是因为我没有在模式中设置默认值。我完全被难住了,所以如果有任何其他信息我错过了,请让我知道。如果您能提供任何帮助,我们将不胜感激
谢谢 不要使用
新用户()
创建实例。。。直接在有效的$set
参数中使用对象。干杯