mongodb c#版本为的记录分页

mongodb c#版本为的记录分页,c#,mongodb,pagination,version,C#,Mongodb,Pagination,Version,我在MongoDB中有一个集合,其中包含版本相同的重复记录 [ { Name: "test1", Date: "10-10-10", Age: 10, Version: 1 }, { Name: "test1", Date: "10-10-10", Age: 1000, Version: 2 }, { Name

我在MongoDB中有一个集合,其中包含版本相同的重复记录

[
  {
    Name: "test1",    
    Date: "10-10-10",
    Age: 10,
    Version: 1
  },
  {
    Name: "test1",    
    Date: "10-10-10",
    Age: 1000,
    Version: 2
  },
  {
    Name: "test2",    
    Date: "10-10-10",
    Age: 20,
    Version: 1
  },
  {
    Name: "test3",    
    Date: "10-10-10",
    Age: 30,
    Version: 1
  }
]
我用下面的泛型方法得到分页结果

public static async Task<PagedResult<T>> GetItemsAsync(string collection, Expression<Func<T, bool>> predicate, PagedResult<T> pagedResult)
{
    PagedResult<T> result = pagedResult;

    var mongoCollection = mongoDatabase.GetCollection<T>(collection);
    //if no predicate return all
    var query = mongoCollection.Find(null == predicate ? _ => true : predicate);

    result.Count = await query.CountDocumentsAsync();
    result.Records = query.Skip((pagedResult.PageNumber - 1) * pagedResult.PageSize).Limit(pagedResult.PageSize).ToList();
    result.ResultCount = result.Records.Count();

    return result;
}
.GroupBy(j => j.Name)
.Select(k => k.OrderByDescending(l => l.Version).FirstOrDefault())
.ToList();