运行这个给我 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);
}); };
答案 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 ...