Javascript Mongoose在更新时将数组更新为默认值

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,

我正在尝试使用mongoose的FineOne和upsert更新功能,在每次用户单击我的应用程序时更新日期功能。当一个新用户最初被创建时,一切都得到了正确的设置。但是,当系统更新一个已经存在的用户时,它会更新我告诉它的日期功能,但也会强制字符串数组变回空数组

以下是我的模式:

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
参数中使用对象。干杯