猫鼬删除后总是返回 undefined

时间:2021-02-27 22:37:51

标签: node.js mongodb mongoose

运行这个给我 undefined 在 console.log (like.user) 并导致没有更新 Post 和 User schéma 在 (2 and 3 ==> )。

问题是 1==> like 变量返回 undefined

如果您认为此代码有改进,欢迎提出建议

    exports.deleteLike = async (req, res) => {
              const userId = req.params.userId;
              const postId = req.params.postId;
              await Like.find({ post: postId, user: userId }).then((p) => {
              if (p.length !== 0) {
  1 ==>  const like = Like.deleteOne({ _id: p[0]._id }).then((del) => {  
                if (del.deletedCount === 1)  {
  2 ==> Post.updateOne({ _id: like.post },{ $pull:{ likes: like.id }, $inc:{ 
           LikesCount:-1}});
  3 ==> User.updateOne({ _id: like.user }, { $pull: { likes: like.id } });
                   // Delete like from users collection
                    console.log(" like.user", like.user)
                    }
                      });
                console.log(like.user);
                  return res.json({en: "Disliked"}).status("200");
                } else  res.json({en: "Already Disliked"}).status(200);
              }); };

1 个答案:

答案 0 :(得分:0)

我修复了它:使用数组 P

{ "$group":{
     "_id": "$_id.numbers_of_planets",
     "planet_count": { "$first": "$count" },
     "planet_letter": { "$first": "$_id.planet" },
     "grouping_count": { "$sum": 1 },
     "total": { "$sum": "$planet.count" }
}},
{ "$addFields": { 
      "planet" : { "count": "$planet_count", "letter": "$planet_letter" }, 
      "planet_count": "$$REMOVE",  
      "planet_letter":  "$$REMOVE"
} }, 
// other stages ...