仅当满足某些条件时,我才想将元素从数组中拉出
这是我的文档结构:
{
_id: "userId",
posts: [{
_id: "postId",
comments:[{
_id: "commentId",
userid: "some id of an user" // USER
},{
_id: "commentId2",
userid: "some id of an user2"
}]
}]
}
我想使用给定的commentIdcomments从数组中删除元素。仅当is时才应这样做。如果不满足该条件,则表示该评论不属于想要删除它的用户,因此我拒绝了它。useridUSER
尝试过:
Post.findOneAndUpdate(
{
_id: mongoose.Types.ObjectId(userId)
},
{
$pull: {
$cond: [
{
"posts.$[post].comments.$[comment].userid": {
$eq: USER
}
},
{
$pull: {
comments: {
_id: mongoose.Types.ObjectId(commentId)
}
}
}
]
}
},
{
arrayFilters: [
{
"comment._id": mongoose.Types.ObjectId(commentId)
},
{
"post._id": mongoose.Types.ObjectId(postId)
}
]
}
)
上面的代码不起作用,我被困在那里,我不知道如何继续。也许有人知道如何解决这个问题。