Когда я обновляю свой профиль пользователя, область поля, которая находится внутри местоположения на моей модели пользователя, стирается, это моя модель пользователя, где вы можете видеть окрестности внутри местоположения:
const userSchema = new Schema({
name: {
type: String,
required: 'Please supply a name',
trim: true
},
location: {
type: {
type: String,
default: 'Point'
},
coordinates: [{
type: Number,
required: 'You must supply coordinates!'
}],
address: {
type: String,
required: 'You must supply an address!'
},
vicinity: {
type: String,
},
},
});
Тогда у меня есть контроллер, который обновляет пользователя, где у меня есть объект обновлений, а окрестность здесь не нужна, поскольку я не хочу обновлять его, я просто хочу сохранить окрестность в регистре, а не обновлять его:
exports.updateAccount = async (req, res) => {
req.body.location.type = 'Point';
const updates = {
email: req.body.email,
name: req.body.name,
photo: req.body.photo,
genres: req.body.genres,
musicLinks: req.body.musicLinks,
location: {
type: req.body.location.type,
coordinates: [
req.body.location.coordinates[0],
req.body.location.coordinates[1],
],
address: req.body.location.address,
// vicinity: req.body.location.vicinity,
}
};
if(!updates.photo) delete updates.photo
const user = await User.findOneAndUpdate(
{ _id: req.user._id },
{ $set: updates },
{ new: true, runValidators: true, context: 'query' }
);
req.flash('success', 'Updated the profile!');
res.redirect('back');
};
Но каждый раз, когда я обновляю профиль пользователя, поле окрестности стирается, также обратите внимание, что в форме, в которой я отправляю обновление для пользователя, поле окрестности отсутствует, поэтому оно не отправляет данные для обновления.
Я предполагаю, что, поскольку на контроллере у меня есть объект обновлений, такой как:
location: {
type: req.body.location.type,
coordinates: [
req.body.location.coordinates[0],
req.body.location.coordinates[1],
],
address: req.body.location.address,
// vicinity: req.body.location.vicinity,
}
и его недостающая скорость. база данных пытается сохранить весь объект местоположения, и, поскольку поблизости нет, она удаляется.
Если это так ... как я могу сказать Монго ДБ, чтобы сохранить значение в БД и не удалять его? Спасибо