带有许多集合的DocumentDB分页

时间:2015-06-04 15:41:51

标签: azure-cosmosdb

假设我有两个集合,每个集合中有10个文档。如果我想要检索最多15个文档,建议进行分页的方法是什么?

当我运行下面的代码时,我得到20个结果。它开始请求返回10的第一个集合,然后第二个也返回10,但它应该返回5,因为MaxItemCount是15。

        var batches = new List<IEnumerable<T>>();
        var feedOptions = new FeedOptions
        {
            MaxItemCount = 15
        };

        var docQuery = Client.CreateDocumentQuery<T>(Database.SelfLink, feedOptions)
                 .Where(predicate).AsDocumentQuery();

        do
        {
            var batch = await docQuery.ExecuteNextAsync<T>();
            batches.Add(batch);

        } while (docQuery.HasMoreResults);

        var docs = batches.SelectMany(b => b).Take(maxItemCount.Value);

        return docs;

1 个答案:

答案 0 :(得分:3)

MaxItemCount控制每页的结果数,而不是返回的总结果数。要减少结果总数,请更改while子句以检查例如(docQuery.HasMoreResults&amp;&amp; batch.Length&lt; = maxItemCount.Value)。

希望这有帮助。