【发布时间】:2020-03-18 21:44:31
【问题描述】:
我有一个帖子模式,它只包含 _id、文本、喜欢和 cmets 等属性。如果满足两个条件,我想将用户 ID 推送到喜欢数组中。首先,帖子的 id 应该与查询参数匹配,然后 likes 数组不应该已经包含试图点赞帖子的人的 id。而是应该出现错误消息:帖子已被喜欢。
来自 post 架构的类似密钥对
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))
有什么建议吗?
【问题讨论】:
-
“它不起作用”是什么意思?什么是“一些问题”?你有错误吗?或者更有可能您没有得到任何更新,但您不知道是因为没有匹配的用户还是 likes 数组已经有这个值?
标签: javascript node.js mongodb express mongoose