账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mongoose如何只修改object的某几个value?
    41
    0

    大概情况和这个差不多 https://cnodejs.org/topic/50d...

    schema:

    const userInfoSchema = new Schema({
      uId: String,
      userId: Number,
      wxInfo: {
        unionid: String,
        openid: String,
        nickName: String,
        avatarUrl: String,
        gender: Number, 
        city: String,
        province: String,
        country: String,
        language: String, 
      },
      createTimeUtc: { type: Date, default: Date.now },
      updateTimeUtc: { type: Date, default: Date.now },
    })

    node:
    现在是用的这样

      await UserInfoModel.findOneAndUpdate({ userId }, {
        $set: {
          'wxInfo.nickName': nickName,
          'wxInfo.avatarUrl': avatarUrl,
          'wxInfo.gender': gender,
          'wxInfo.city': city,
          'wxInfo.province': province,
          'wxInfo.country': country,
          'wxInfo.language': language,
          updateTimeUtc: Date.now(),
        }
      });

    这样写会把wxInfo全部更新掉:

      UserInfoModel.findOneAndUpdate({ userId }, {
        wxInfo: {
          nickName, avatarUrl, gender, city, province, country, language,
        },
      });

    怎样简单的方法写才能让nickName, avatarUrl, gender, city, province, country, language 全更新,而其他没传的保持不变?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部