您可以通过搜索来完成此操作 req.user.id 在 - 的里面 indexOf likes 排列
req.user.id
indexOf
likes
Post.findOne({ _id: req.params.id }).lean().then((post) => { if (post.likes.indexOf(req.user.id) !== -1) { post.isLiked = true } post.isLiked = false res.json(post) })
聚合更好
Post.aggregate([ { "$match": { "_id": mongoose.Types.ObjectId(req.user.id) }}, { "$addFields": { "isLiked": { "$in": [mongoose.Types.ObjectId(req.user.id), "$likes"] } }} ])
的 编辑: - 强> 如果要更新文档,请使用更新查询
Post.findOneAndUpdate( { _id: req.params.id }, { $pull: { likes: { user: req.user.id } }}, { new: true } ).then((post) => { res.json(post) })
的 发布Schema for likes 强>
... likes: [ { user: { type: Schema.Types.ObjectId, ref: "users" } } ] ...