多个集合修改

时间:2019-02-09 17:50:58

标签: mongodb collections model endpoint

我正在构建一个端点,该端点会将POSTS集合中某个帖子的“ deleted”属性更改为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状态保持为false。有什么建议么?这是我发布的第一个问题,因此对礼节的任何反馈也将不胜感激。

1 个答案:

答案 0 :(得分:0)

欢迎,@ dcortes!

从您发布的代码中可以看出,将它们的parentDeleted值更改为true后,您没有保存注释。

因此,对于代码的相关部分,类似的方法可能会更好:

 <Image
   style={styles.arrayPictures}
   key={newPicture}
   source={{uri: `data:image/png;base64,${newPicture}`}}
  />

我不确定要保存注释后要做什么,所以我刚刚返回了comment.save()的结果。

请注意,如果您的更广泛的问题是:“是否可以使用一个端点修改多个集合?”答案肯定是。