在C#中使用带有ProjectionDefinition的$ filter投影

时间:2017-03-10 09:59:43

标签: c# mongodb projection

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

当我拉动一个用户时,我可以像这样投射出来:

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

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

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

ProjectionDefinition<User> projectiondef = Builders<User>.Projection.Include('UserName');

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

0 个答案:

没有答案