-1

场景一:

以下之一:

  • Cosmos DB 查询不会在一次查询中返回所有预期结果
  • Cosmos DB 查询为同一查询返回不同的结果计数。

在以下情况下可以看到此行为:

  1. 在 Portal 上,使用 TOP 执行查询,例如 SELECT TOP 10,但返回的结果中的元素少于预期的 10 个。

  2. 在 Portal 上,执行相同的查询,但每次都有不同的结果集。结果集不同,但某些结果被其他结果覆盖。例如,考虑一个预期结果为 [C, O, S, M, O, S] 的查询。在第一次执行中,结果是:[C, O, S]。在第二次执行中,结果是 [C, O, S, M, O]。第二个结果覆盖了第一个结果。

  3. 使用查询 REST API,查询返回的结果少于在门户上运行相同的查询。

场景二:

  • Cosmos DB 查询为同一查询返回不同的结果(不是结果计数)
4

1 回答 1

-1

方案 1

该行为是由于查询无法在一页内完成。可能有几个原因:

  • 集合没有足够的预配 RU 来容纳流向集合的当前流量,并且当前查询受到影响。
  • 该查询非常广泛。

在这些情况下,查询会将结果集拆分为多个页面。因此,为了得到所有的结果,我们需要遍历所有的页面直到结束。

如何遍历页面取决于运行查询的方式。

  • 在 Portal 中,当查询的结果超过一页时,您应该会看到可用的“加载更多”链接。单击此链接将移至下一个结果页面。
  • 使用 SDK,SDK 支持后台分页。.NET SDK 的示例可以在示例代码中找到。其他 SDK 的工作方式类似。
  • 使用 REST API,您需要在当前查询响应标头中获取延续令牌值,然后将其设置在下一个查询的请求标头中。标题名称是x-ms-continuation。可以在查询资源文章中找到更多详细信息。

方案 2

此行为是由于有写入流量流向该帐户。因此,每个查询的查询结果都不同。

于 2018-10-31T18:59:21.107 回答