在帖子集合中,我存储了所有喜欢该帖子的用户ID,当从服务器接收数据时,我需要检查posts.likes 中是否存在当前用户ID。
我试图用 $filter 来做,但没有用
这是文档的结构
{
_id: 'id_post'
{
likes: [
ObjectId('id_user1'),
ObjectId('id_user2'),
ObjectId('id_user3'),
ObjectId('id_user4'),
ObjectId('id_user5')
]
}
}
如果用户 id 是 id_user 4,我需要得到这样一个对象
{
_id: 'id_post'
{
likes: [
ObjectId('id_user4')
]
}
}
尝试
Posts.aggregate([
{ $limit: 1 },
{
$project: {
_id: 1,
likes: {
$filter: {
input: '$likes',
as: 'likes',
cond: { _id: sessionID }
}
}
}
}
])
升级版: