C# 可以在服务器端同时进行排序和分页的DocumentDb查询吗?

C# 可以在服务器端同时进行排序和分页的DocumentDb查询吗?,c#,azure,asp.net-web-api,azure-cosmosdb,C#,Azure,Asp.net Web Api,Azure Cosmosdb,我正在编写一个API,允许客户端使用按时间顺序排列的数据。它有很多(每个客户端有10k+条记录),所以我不想将所有这些都转储回客户端并在那里订购,因此我需要订购它并在服务器端对其进行分页。我有分页工作,但我看不到如何添加排序 我已经看到了对客户机进行排序的建议,但是考虑到在这种情况下可能无法使用的数据量。有解决办法吗 以下是我到目前为止的情况: var选项=新的馈线选项{ MaxItemCount=25, RequestContinuation=continuationToken } var q

我正在编写一个API,允许客户端使用按时间顺序排列的数据。它有很多(每个客户端有10k+条记录),所以我不想将所有这些都转储回客户端并在那里订购,因此我需要订购它并在服务器端对其进行分页。我有分页工作,但我看不到如何添加排序

我已经看到了对客户机进行排序的建议,但是考虑到在这种情况下可能无法使用的数据量。有解决办法吗

以下是我到目前为止的情况:

var选项=新的馈线选项{
MaxItemCount=25,
RequestContinuation=continuationToken
}
var query=String.Format(“从TimelineEvent t中选择*,其中t.acc_id='{0}',t.removed!=true”,accountId);
//查询文本中的ORDER BY似乎不起作用
var events=client.CreateDocumentQuery(colSelfLink,query,options).AsDocumentQuery();
var response=await query.ExecuteNextAsync();

不支持开箱即用,但您可以实现一个存储过程来实现这一点

msft产品组在此提供了一些代码示例:


在服务器端脚本JS文件夹下,您将看到一个“orderby”脚本,它可以实现这一点。适应你的需要并尝试一下

现在DocumentDB正式支持ORDER BY


顺便说一句,这项功能是计划好的,发布在这里:谢谢,这看起来很棒。我将在本周内进一步调查。但仍然没有遗漏/记录。