首页 > 解决方案 > Mongoose 通过 ID 查找,然后在数组中查找特定 ID

问题描述

我有一个看起来像这样的文件

在此处输入图像描述

如何执行搜索 ID 的查询,然后从结果中,我想对评论数组中的特定 ID 执行另一个查询?

我试过了,但这会导致错误

try {
      TourDB.Tour.findOneAndUpdate({ _id: req.body.tourId, comments._id: req.body.commentId }, { $inc: { comments.$.likes : 1}}).exec(async (err, docs) => {
         if (!err) {
            return res.status(200).send(docs);
         } else {
            return res.status(500).send({ errorMessage: `An error occured: ${err}` });
         }
      });
   } catch (err) {
      return res.status(500).send({ errorMessage: `An error occured: ${err}` });
   }

我想在文档中按 ID 查找特定评论并按一个更新喜欢。我怎样才能做到这一点?

标签: javascriptnode.jsmongodbmongoose

解决方案


这个应该有效:您错过了引号“”

try {
      const tour = await TourDB.Tour.findOneAndUpdate(
         { _id: req.body.tourId, 'comments._id': req.body.commentId },
         { $inc: { 'comments.$.likes': 1 } }
      ).exec();
      res.status(200).send(tour);
   } catch (err) {
      return res.status(500).send({ errorMessage: `An error occured: ${err}` });
}

推荐阅读