Cosmos DB分页导致“请求率很高”例外

时间:2018-08-29 07:23:47

标签: c# mongodb azure-cosmosdb azure-cosmosdb-mongoapi

我实现了一个使用MongoDB.Driver.IMongoClient从Cosmos DB读取的类。

我需要分页,因为每个集合中都有很多物品,我以为我做到了以下几点:

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

对于更高的页码,我们现在遇到“请求率较大”例外。

根据我从herehere所看到的,Cosmos DB不支持Skip,那么有人能解释IMongoClient在这里做什么吗?

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

0 个答案:

没有答案