#mongodb #mongoose
#mongodb #мангуст
Вопрос:
Я новичок в mongo. Мне нужно обновить одно вложенное поле в модели MongoDB. Это мой код: —
const employee = await empModel.searchData(Query);
countryArray.push({lang: 'eng', result 100});
countryArray.push({lang: 'german', result 99});
employee[0].country = countryArray;
employee[0].markModified('country');
employee[0].save();
Схема empModel:
onst mongoSchema = new Schema({
empId: [{
type: Schema.Types.ObjectId
}],
country:[{
lang:String,
result:Number
}],
projectId: {
type: String,
required: true
}
});
Комментарии:
1. Что такое
countryArray
? Какое поле вы хотите обновить? Не могли бы вы объяснить, что вам нужно2. мне нужно обновить поле ‘country’ на ‘countryArray’. countryArray — это массив с обновленным значением, которое мне нужно сохранить в базе данных
3. Вы использовали
countryArray
поле в схеме? И если вы хотите обновить документ, тогда используйте простой запрос use update вместо поиска и последующего обновления..4. У меня есть поле country, но мне нужно заменить значение поля country значением countryArray
5. Также покажите код для
searchData
функции
Ответ №1:
Используйте простой запрос на обновление вместо поиска и обновления
static async updateData(query, countryArray) {
const updateData= await this.update(query, { $set: { country: countryArray }});
console.log(updated successfully')
return 'Updated successfully'
}
const countryArray = []
countryArray.push({lang: 'eng', result 100})
countryArray.push({lang: 'german', result 99})
const update = await empModel.updateData(Query, countryArray)