Как мне обновить с помощью мангуста и проверить, существует ли электронная почта
Похоже, я не могу этого понять.
Функция должна проверить, существует ли уже электронное письмо в коллекции. Если электронное письмо существует, значит, человек уже назначил встречу. Если адрес электронной почты существует, необходимо выполнить обновление времени. И если электронной почты не существует, он должен сохранить req.body как новый документ.
router.put('/appointment', (req, res) => {
let appointmentData = req.body;
const email = appointmentData.email;
const time = appointmentData.time;
appointmentData.full_date = new Date();
Appointment.findOne(email).exec((err,booking)=> {
if(booking){
Appointment.findOneAndUpdate(email, {time: time},{
new: true,
upsert: true
});
console.log("Item exists");
}
else{
let appointment = new Appointment(appointmentData);
Tenant.findById({ _id: appointmentData.email /*_id:appointmentData.day*/ }, (err, tanent) => {
if (err) {
console.error("appointment booking error :", err);
} else {
if (!tanent) {
res.status(400).send('Error Finding tenant');
} else {
appointment.save((err, appointmentBooked) => {
if (err) {
console.log("Error booking in cleaning appointment" + err);
} else {
res.status(200).send(appointmentBooked);
}
})
}
}
});
}
})
});
Несмотря на то, что электронное письмо существует в коллекции, оно продолжает создавать документ, а не обновлять
1 ответ
Измените эту строку кода:
Appointment.findOne(email)
к:
Appointment.findOne({email: email})