Несколько модификаций коллекции - PullRequest
0 голосов
/ 09 февраля 2019

Я создаю конечную точку, которая изменит свойство «удаленный» для поста в коллекции POSTS на true (что работает нормально), а затем также найду все комментарии в коллекции COMMENTS, которые являются ответом на этот пост (которыйЯ сделал это другим путем) и изменил все их свойства parentDeleted на true (вот где у меня возникают проблемы).

Вот маршрут для удаления сообщения:

router.delete('/:id', (req, res) => {
  Post.findById(req.params.id).then(post => {
  post.deleted = true

  post.save().then(post => res.json(post))
  })  
  .catch(err => res.status(404).json({ categories: 'No post found'}))
})

А вот маршрут для поиска всех комментариев в ответ на сообщение:

router.get('/:id/comments', (req, res) => {
  Comment.find({ parentId: req.params.id})
    .then(posts => res.json(posts))
    .catch(err => res.status(404).json({ categories: 'No post found'}))
})

Я попытался добавить логику комментариев к логике поста и отобразить комментарии:

router.delete('/:id', (req, res) => {
  Post.findById(req.params.id).then(post => {
    post.deleted = true

    post.save()
  }).then(post => {
    Comment.find({ parentId: req.params.id})
      .then(comments => {
        comments.map((comment) => {
          return comment.parentDeleted = true
       })
    })
  })
  .then(post => res.json(post))   
  .catch(err => res.status(404).json({ categories: 'No post found'}))
})

Статус удаленного сообщения изменяется на true, но статус комментария parentDeleted остается ложным.Какие-либо предложения?Это мой первый опубликованный вопрос, поэтому любые отзывы об этикете также приветствуются.

1 Ответ

0 голосов
/ 09 февраля 2019

Добро пожаловать, @dcortes!

Из опубликованного вами кода видно, что вы не сохраняете комментарии после изменения значения parentDeleted на true.

Итак, для соответствующей части кода что-то похожее на это может работать лучше:

Comment.find({ parentId: req.params.id})
  .then(comments => {
    comments.map((comment) => {

      // Set the appropriate value.
      comment.parentDeleted = true;

      // Then save it. 
      // You can modify what is returned, if needed. 
      return comment.save();
   })
})

Я не совсем уверен, что вы хотите делать с комментариями, когда они 'Сохранено, поэтому я только что возвратил результат comment.save ().

Обратите внимание, что если ваш более широкий вопрос: «Можно ли изменить несколько коллекций, используя одну конечную точку?»ответ определенно да.

...