доступ вернул результат из запроса на удаление mongoose - PullRequest
0 голосов
/ 04 июля 2018

Я удаляю EnrichedEvent, используя его идентификатор из обогащенной коллекции событий. А также мне нужно обновить то же самое в коллекции проектов. Я могу добиться этого, но один раз после при удалении обогащенной коллекции, когда я снова попытался удалить тот же идентификатор, показывалось только удаленное событие Когда я удаляю событие в первый раз, оно показывает {n:1, Ok:1}, если я удалю тот же Id в следующий раз, он покажет {n:0, Ok:1} Что верно. но я хочу знать, как получить доступ к этим {n:X,OK:X}? Так что я могу написать условие If, говоря, что if Result== {n:1} затем событие удаляется, иначе идентификатор события не существует. Или есть ли другой способ добиться этого, пожалуйста, направьте меня в правильном направлении.

Это мой код Херса.

router.delete("/:projectId/event/enriched/:enrichedEventId", (req, res, next) => { 
const enrichedEventId = req.params.enrichedEventId;
const projectId= req.params.projectId;
console.log(enrichedEventId);
console.log(projectId);
Project.findOneAndUpdate({ _id: projectId},
        { $pull: { enrichedEvents:  enrichedEventId} })
.exec()
.then(project =>{
if(project) {
    console.log("--------------");
    console.log(enrichedEventId);
  EnrichedEvent.remove({ _id: enrichedEventId })
    .exec()
    .then(result => {
        console.log(result)
        if (result== null) {
            return res.status(404).json({
              message: "ID not found"})
        }else{
                console.log(result);
                res.status(200).json({
                message: "event removed"});
            }
    })
} else if(project == null){
    res.status(400).json({
        message: "projectId is invalid"
    })}
})
    .catch(err => {
        console.log(err);
        res.status(500).json({
            error: err
        });
    });
});

1 Ответ

0 голосов
/ 04 июля 2018

Если документ найден, то вы получите -> { n: 1, ok: 1 } и если этого не произойдет, вы получите -> { n: 0, ok: 1 }, а затем вы можете просто поставить условие с помощью n === 0 или n === 1.

Project.findOneAndUpdate(
  { _id: projectId },
  { $pull: { enrichedEvents:  enrichedEventId }}
).then(project => {
  if(project) {
    EnrichedEvent.remove({ _id: enrichedEventId }).then(result => {
      if (result.n === 0) {
        return res.status(404).json({ message: "ID not found" })
      } else {
        return res.status(200).json({ message: "event removed"})
      }
    })
  } else {
    return res.status(400).json({ message: "projectId is invalid" })
  }
}).catch(err => {
  return res.status(500).json({ error: err })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...