猫鼬更新数组更新为默认值

时间:2018-08-09 18:02:36

标签: javascript mongodb mongoose mongoose-schema

每次用户使用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”功能。我不确定导致错误的原因,尤其是因为我尚未在架构中设置默认值。我完全迷住了,所以如果我错过了任何其他信息,请告诉我。您能提供的任何帮助将不胜感激。

谢谢!

0 个答案:

没有答案