mongodb c#版本为的记录分页
我在MongoDB中有一个集合,其中包含版本相同的重复记录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
[
{
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();