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

时间:2015-04-21 06:03:00

标签: mongodb c#-4.0 group-by filtering mongodb-.net-driver

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

这是我的代码。

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);

这是我的小组,但如何在此处添加过滤器?

2 个答案:

答案 0 :(得分:1)

您可以使用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);

答案 1 :(得分:0)

var Filter = new BsonDocument("ProductName", "WH-208");
var list = await collection.Find(Filter).ToListAsync();

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

Refference