大概情况和这个差不多 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 全更新,而其他没传的保持不变?