如何删除 mongodb 字段中的特定数据

How to remove specific data within a field in mongodb

我有这个帖子集:

{
    id: 'post_id',
    content: 'text here',
    postedBy: 'user_id',
    likes: [
        {
            0: 'user_id
        },
        {
            1: 'another_user_id'
        }
    ]
}

我希望能够删除特定用户在所有帖子中的所有赞。我试过像这样使用 $unset 运算符:

const likes = await Post.updateMany({ $unset: { likes: user_id } });

像这样:

const likes = await Post.updateMany(
    { likes: user_id },
    { $unset: { likes: '' } }
);

然而,这两者的作用是从包含该用户点赞的帖子中删除所有点赞。

有人知道我如何只能删除一个特定用户的点赞吗?

答案是使用 $pull 而不是 $unset:

const likes = await Post.updateMany({ $pull: { likes: u._id } });