Я пытаюсь обновить определенное местоположение, только если его статус: 0 или статус 2. Не обновлять, если статус 1. У меня есть только одна копия этого местоположения.
Property.findOneAndUpdate({ status: 0, location: req.body.update.location }, req.body.update, err => {
if (err) return res.json({ success: false, error: err });
return res.json({ success: true });
});
Property.findOneAndUpdate({ status: 2, location: req.body.update.location }, req.body.update, err => {
if (err) return res.json({ success: false, error: err });
return res.json({ success: true });
});
Однако приведенный выше код обновляет свойство, даже когда статус равен 1.
Property.find({location: req.body.update.location}, (err, Propertyz) => {
myProperty = Propertyz
console.log(myProperty[0].status)
if(myProperty[0].status != 1) { // returns and doesn't update if true
console.log("updating")
Property.findOneAndUpdate({ location: req.body.update.location }, req.body.update, err => {
if (err) return res.json({ success: false, error: err });
return res.json({ success: true });
});
}
else {
console.log("rejecting")
return res.json({ success: true });
}
})
Я изменил это на это, и это работает, но я не понимаю, почему предыдущая не работала или был способ объединить две предыдущие функции в одну.