如何过滤 Mongo C# 驱动程序中的集合?

How to filter collection in Mongo C# driver?

我知道 Mongodb for Linq 不支持 group 操作!
因此,我在 LINQ 中找到了 Mongo C# 驱动程序作为 group by 的组。
我已阅读 mongo-csharp-driver 示例,但这些不是带过滤的组示例。
请告诉我,谢谢。

这是我的代码。

var Table = DatabaseLinq.GetCollection<Model.Urls>(TableName).FindAll().AsQueryable();
var queryData = (from item in Table
        group item by item.Url)
        .OrderByDescending(p => p.Sum(x => x.ViewsCount))
        .Skip((PageIndex - 1) * PageSize)
        .Take(PageSize);

这是我的分组依据,但我如何在这里添加过滤器?

您可以使用 Find() 而不是 .FindAll() 方法添加过滤器,如下所示:

var Table = DatabaseLinq.GetCollection<Model.Urls>(TableName)
  .Find(Query<Model.Urls>.EQ(x => x.Url, "Ken")).AsQueryable();
var queryData = (from item in Table
        group item by item.Url)
        .OrderByDescending(p => p.Sum(x => x.ViewsCount))
        .Skip((PageIndex - 1) * PageSize)
        .Take(PageSize);
var Filter = new BsonDocument("ProductName", "WH-208");
var list = await collection.Find(Filter).ToListAsync();

在上面的行中,'ProductName' 是要搜索的 KEY,'WH-208' 是要搜索的 VALUE。

Refference