Cosmos DB 分页 - 总记录

问题描述 投票:0回答:1

我们在带有分页的表中显示来自 CosmosDb 的数据。底层查询使用分组以及 OFFSET 和 LIMIT。

我们需要知道总行数或总页数才能显示页码和“转到最后”。这可能吗?

PS。在 Azure 数据资源管理器中运行查询时,我可以看到

Output document count
哪个接缝正是我正在寻找的内容。是否可以使用
GetItemQueryIterator
获取该值?

azure-cosmosdb
1个回答
0
投票

FeedResponse
可以通过
feedResponse.Diagnostics.GetQueryMetrics()
使用 QueryMetrics。该指标对象有一个
OutputDocumentCount
,它似乎与查询上下文中的文档数量相关(没有 OFFSET 和 LIMIT)

long totalCount = 0;
var data = new List<JObject>();
using (FeedIterator<JObject> resultSetIterator = _container.GetItemQueryIterator<JObject>(queryDefinition))
{
    while (resultSetIterator.HasMoreResults)
    {
        FeedResponse<JObject> response = await resultSetIterator.ReadNextAsync();
        data.AddRange(response);
        var metrics = response.Diagnostics.GetQueryMetrics();
        if (metrics != null)
            totalCount = metrics.CumulativeMetrics.OutputDocumentCount; // Here it is ;)

    }
}

© www.soinside.com 2019 - 2024. All rights reserved.