首页 > 解决方案 > 如何使用 mongoose 在 MongoDB 的数组中推送数据

问题描述

我在 MongoDB 中有一个空数组

我想把 ID 推进去。

router.put(
  "/like/:id",
  (req, res) => {
    User.findOne({ _id: req.user._id }).then(data => {
      if (data) {
        Post.update(
          { _id: ObjectId(req.params.id) },
          { $push: { likes: req.user._id } }
        );
      }
    });
  }
);

此代码不适用于我如何实现这一目标。

标签: arraysnode.jsmongodbmongoosemongodb-query

解决方案


router.put (
  "/addlike/:id",
  passport.authenticate("jwt", {
    session: false
  }),
  (req, res) => {

   // use try-catch 
   try { 
    User.findOne({ _id: req.user._id }).then(data => {
      if (data) {
        Post.findOneAndUpdate(
          { _id: ObjectId(req.params.id) },
          { $push: { likes: req.user._id },
          { "new": true, "upsert": true} }
        );
      }
    });
   } catch(err){
    // handle error
    console.log('Error => ', err);
   }
  }
);

我已经在我的本地系统中对此进行了测试......工作正常


推荐阅读