2

我已经实现了一个类来使用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这里在做什么吗?

此外,使用延续令牌实现此目的的正确方法是什么?

4

0 回答 0