在 C# 中将 $filter 投影与 ProjectionDefinition 结合使用

Dal*_*all 5 c# projection mongodb

我有一个应用程序,用户可以互相关注,而关注者是用户上设置的数组,因此我们可以检查给定的用户 ID 是否在关注者数组中。

当我拉出一个用户时,我可以将其投影出来,如下所示:

{
    UserName: '$UserName',
    IsFollowing : {
        $filter : {
            input : '$Followers',
            as : 'followers',
            cond : { 
                $eq : ['$$followers.UserId', ObjectId('[ID]')]
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后反序列化结果以匹配视图模型。

是否可以使用像这样的 ProjectionDefinitions 创建一个像上面这样的过滤器?:

ProjectionDefinition<User> projectiondef = Builders<User>.Projection.Include('UserName');
Run Code Online (Sandbox Code Playgroud)

IsFollowing 字段不在用户文档中,所以我不知道如何提取它。