【问题标题】:DocumentDb query with both ordering and paging on the server side, possible?在服务器端同时进行排序和分页的 DocumentDb 查询,可能吗?
【发布时间】:2015-01-16 15:24:37
【问题描述】:

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

我看到了对客户端进行排序的建议,但考虑到在这种情况下可能无法正常工作的数据量。有解决办法吗?

这是我目前所拥有的:

var options = new FeedOptions {
    MaxItemCount = 25,
    RequestContinuation = continuationToken
}
var query = String.Format("SELECT * FROM TimelineEvent t WHERE t.acc_id = '{0}' AND t.removed != true", accountId); 
// ORDER BY in the query text doesn't appear to work
var events = client.CreateDocumentQuery<TimelineEvent>(colSelfLink, query, options).AsDocumentQuery();
var response = await query.ExecuteNextAsync<TimelineEvent>();

【问题讨论】:

    标签: c# azure asp.net-web-api azure-cosmosdb


    【解决方案1】:

    不支持开箱即用,但您可以实现执行此操作的存储过程。

    msft 产品组在此处提供了一些代码示例:https://code.msdn.microsoft.com/windowsazure/Azure-DocumentDB-NET-Code-6b3da8af/sourcecode?fileId=132409&pathId=34503205

    查看服务器端脚本、JS 文件夹,您会看到执行此操作的“orderby”脚本。根据您的需要进行调整并尝试一下。

    【讨论】:

    【解决方案2】:

    【讨论】:

    • 仍然没有 SKIP / TAKE。
    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-18
    • 2019-06-14
    相关资源
    最近更新 更多