我已经实现了一个类来使用MongoDB.Driver.IMongoClient
.
我需要分页,因为每个集合中有大量项目,我认为我已经通过以下方式实现了这一点:
private async Task<ICollection<SomeClass>> ReadMessages(IMongoCollection<SomeClass> collection, FilterDefinition<SomeClass> filter, int page, int pageSize)
{
var found = new List<SomeClass>();
using (var cursor = await collection
.Find(filter)
.Skip((page - 1) * pageSize)
.Limit(pageSize)
.ToCursorAsync())
{
while (await cursor.MoveNextAsync())
{
var batch = cursor.Current;
found.AddRange(batch.Select(x => x);
}
}
return found.ToArray();
}
我们现在遇到更高页码的“请求率很大”异常。
从我可以从这里和这里看到的Cosmos DB 不支持Skip
,所以任何人都可以解释IMongoClient
这里在做什么吗?
此外,使用延续令牌实现此目的的正确方法是什么?