gpt4 book ai didi

mongodb - Mongoose updateOne 函数 : don't update if $pull didn't work

转载 作者:行者123 更新时间:2023-12-04 15:20:48 26 4
gpt4 key购买 nike

我正在使用这样的 updateOne 方法:

Photo.updateOne(
{
"_id": photoId
},
{
"$pull": {
comments: {
_id: ObjectID(commentId),
"user.id": user.id
}
},
"$inc": { "commentCount": -1 },
},
)

Photo 模型,其中包含作为数组的评论和作为数字的 commentCount。当我运行代码时,它可以正常工作,但如果照片没有评论(我正在尝试提取评论),它仍会将 commentCount 递增 -1。我想要的是,如果代码没有在照片评论中提取任何评论,也不要更新 commentCount。如何将此规则添加到我的代码中?

感谢您的帮助。

最佳答案

你也可以在查询部分添加comments._idcomments.use.id两个条件,如果评论不可用则跳过更新和拉取部分.

Photo.updateOne(
{
_id: photoId,
comments: {
$elemMatch: {
_id: ObjectID(commentId),
"user.id": user.id
}
}
},
{
"$pull": {
comments: {
_id: ObjectID(commentId),
"user.id": user.id
}
},
"$inc": { "commentCount": -1 }
}
)

关于mongodb - Mongoose updateOne 函数 : don't update if $pull didn't work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63357733/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com