Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure cosmosdb 如何在azure cosmos db for asp.net核心web api中实现上一页/下一页_Azure Cosmosdb - Fatal编程技术网

Azure cosmosdb 如何在azure cosmos db for asp.net核心web api中实现上一页/下一页

Azure cosmosdb 如何在azure cosmos db for asp.net核心web api中实现上一页/下一页,azure-cosmosdb,Azure Cosmosdb,我需要支持azure cosmos db的分页。我知道cosmos db在下一组结果的延续标记上工作。然而,我不知道如何导航到上一组结果。正如我所知,从官方的方式来看,您只能基于延续令牌实现分页。您需要封装方法来实现这一点 你可以参考@Nick写的那封信。 此外,您还可以参考以下示例代码: 私有静态异步任务QueryDocumentsByPage(int pageNumber、int pageSize、string continuationToken) { DocumentClient Docu

我需要支持azure cosmos db的分页。我知道cosmos db在下一组结果的延续标记上工作。然而,我不知道如何导航到上一组结果。

正如我所知,从官方的方式来看,您只能基于延续令牌实现分页。您需要封装方法来实现这一点

你可以参考@Nick写的那封信。 此外,您还可以参考以下示例代码:

私有静态异步任务QueryDocumentsByPage(int pageNumber、int pageSize、string continuationToken)
{
DocumentClient DocumentClient=new DocumentClient(新Uri(“https://{CosmosDB/SQL Account Name}.documents.azure.com:443/”,“{CosmosDB/SQL Account Key}”);
var feedOptions=新的feedOptions{
MaxItemCount=pageSize,
EnableCrossPartitionQuery=true,
//要点:设置延续令牌(第一个请求/页面为空)
RequestContinuation=continuationToken
};
IQueryable filter=documentClient.CreateDocumentQuery(“dbs/{Database Name}/colls/{Collection Name}”,feedOptions);
IDocumentQuery=filter.AsDocumentQuery();
FeedResponse FeedResponse=await query.ExecuteExtAsync();
列表文档=新列表();
foreach(饲料中的芹菜任务t)
{
文件.添加(t);
}
//重要提示:确保为下一个请求保留延续令牌
返回新的KeyValuePair(feedRespose.ResponseContinuation,文档);
}
然后,以下示例说明了如何通过调用前面的方法检索给定页面的文档:

private静态异步任务QueryPageByPage()
{
//每页文档数
const int PAGE_SIZE=3;
int currentPageNumber=1;
int documentNumber=1;
//后续查询的延续令牌(第一个请求/页面为空)
字符串continuationToken=null;
做
{
Console.WriteLine($“----第{currentPageNumber}----页);
//加载当前页面的所有文档
KeyValuePair currentPage=Wait QueryDocumentsByPage(当前页码、页面大小、continuationToken);
foreach(currentPage.Value中的CeleryTask CeleryTask)
{
WriteLine($“[{documentNumber}]{celeryTask.Id}”);
documentNumber++;
}
//确保为下一页查询执行保留延续令牌
continuationToken=currentPage.Key;
currentPageNumber++;
}while(continuationToken!=null);
Console.WriteLine(“\n---END:查询完所有数据元---”;
}
顺便说一句,您可以在cosmos db反馈中跟踪以下关于此功能的跟踪:


到目前为止,你尝试了什么?你的问题太笼统了,但你可以看看我是如何为宇航员做到这一点的: