DocumentDb 中的分页和 TOP vs TAKE vs MAXITEMS

Paging and TOP vs TAKE vs MAXITEMS in DocumentDb

正在尝试实现分页,但我不确定我是否理解 TOP、TAKE 和 MAXITEMS 之间的区别。

我知道他们被设置在不同的地方,但他们似乎在做同样的事情。

据我所知,

TOP vs TAKE 看起来像 SQL vs LINQ。但是,这与 MaxItems 有何不同?

TIA

比尔

MaxItems 是指 MaxItemCount 吗?

如果是这样,它是在 FeedOptions 中设置的,它控制文档查询返回的结果批次的大小。请参阅以下摘自 https://msdn.microsoft.com/en-us/library/azure/microsoft.azure.documents.client.feedoptions.maxitemcount.aspx#P:Microsoft.Azure.Documents.Client.FeedOptions.MaxItemCount:

的示例
// Fetch query results 10 at a time.
var queryable = client.CreateDocumentQuery<Book>(collectionLink, new FeedOptions { MaxItemCount = 10 });
while (queryable.HasResults)
{
    FeedResponse<Book> response = await queryable.ExecuteNext<Book>();
}

在上面的示例中,您一次迭代查询 10 个结果。

为了进一步解释差异,使用 TOP 50 定义查询是有意义的,但 MaxItemCount 为 10。这意味着您将获得数据库中的前 50 个结果,但一次获得 10 个项目的结果.