我有一个发布架构,该架构仅具有_id,文本,喜欢和注释之类的属性。如果要满足两个条件,我想将用户ID推入likes数组。首先,帖子的ID应该与查询参数匹配,然后Likes数组不应该已经包含尝试喜欢该帖子的人的ID。相反,错误消息应该出现:发布已经喜欢的消息。
类似于发布架构中的密钥对
likes:[{
user:{
type: Schema.Types.ObjectId,
refPath:'onModel'
}
}]
我写了以下查询,但它不起作用。更新部分工作正常,但第一个参数存在一些问题。
Post.update({$and: [{ _id: req.params.postid},{"likes": { $ne : { user:
authorizedData.jwt_payload.patient._id }}}]},
{ $push: { likes: {user: authorizedData.jwt_payload.patient._id }}})
.then(post => res.json(post))
.catch(err => res.json(err))
有什么建议吗?
答案 0 :(得分:0)
好的,这样很简单:
Post.update({
_id: req.params.postid,
'likes.user': {
$ne:
authorizedData.jwt_payload.patient._id
}
},
{ $push: { likes: { user: authorizedData.jwt_payload.patient._id } } })
.then(post => res.json(post))
.catch(err => res.json(err))