#node.js #express #mongoose
Вопрос:
поле модели, которое я хочу обновить
address: { shipping: { street: { type: String, required: "please enter a street", trim: true }, city: { type: String, required: "please enter a city", trim: true }, pincode: { type: Number, required: "please enter a pincode", trim: true, }, }, billing: { street: { type: String, required: "please enter a street", trim: true }, city: { type: String, required: "please enter a city", trim: true }, pincode: { type: Number, required: "please enter a pincode", trim: true, }, }, }, },
Я использую мангуста и node.js. допустим, пользователь хочет обновить только 1 поле в адресе, например, предположим, что пользователь хочет обновить город доставки. как я могу это сделать, если в теле запроса я получаю только город доставки?
неудачный код, который я попробовал
if(validator.isValid(address)) { if(!Object.prototype.hasOwnProperty.call(updatedUserData, '$set')) updatedUserData['$set'] = {} updatedUserData['$set']['address'] = address } const upadateduser = await userModel.findOneAndUpdate({_id: userId}, updatedUserData, {new: true})
этот код будет работать только в том случае, если я получу все поля адреса в теле запроса. но мое требование состоит в том, чтобы обработать изменение значения 1 в адресе.