【发布时间】:2020-12-01 02:14:06
【问题描述】:
我正在使用这样的updateOne 方法:
Photo.updateOne(
{
"_id": photoId
},
{
"$pull": {
comments: {
_id: ObjectID(commentId),
"user.id": user.id
}
},
"$inc": { "commentCount": -1 },
},
)
Photo 包含 cmets 作为数组和 commentCount 作为数字的模型。当我运行代码时,它正在工作,但如果照片没有评论(我试图拉)它仍然将commentCount 增加-1。我想要的是,如果代码没有在照片 cmets 中提取任何评论,也不要更新 commentCount。如何将此规则添加到我的代码中?
感谢您的帮助。
【问题讨论】:
-
我已经更新了我的答案,在查询部分添加了
$elemMatch,以确保 cmets 上的两个字段相等,然后进入更新部分,在极少数情况下会发生这种情况,否则我的旧条件也将起作用,因为您正在更新单个文档并几乎使用 _id 字段,它对于特定的父文档来说是唯一的。 -
它工作得很好。感谢您的帮助
标签: mongodb mongoose mongodb-query mongoose-schema