如何删除 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 } });
我有这个帖子集:
{
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 } });