【发布时间】:2020-08-16 15:20:52
【问题描述】:
我想在 Cosmos DB 中执行一个选择查询,返回最大数量的结果(比如 50 个),然后给我继续令牌,以便我可以从中断的地方继续搜索。
现在假设我的查询在 where 子句中有 2 个相等条件,例如
where prop1 = "a" and prop2 = "w" and prop3 = "g"
在返回的结果中,我希望首先出现满足 prop1 = "a" 的记录,然后是 prop2 = "w" 的结果,然后是 prop3 = "g" 的结果。
我为什么需要它?因为虽然我可以将所有数据放到我的应用程序中并在那里进行排序,但显然我不能提取所有记录,因为这意味着提取太多数据。因此,如果我不能在 cosmos 本身中以这种方式订购它,那么在我得到的结果中,我可能只有那些根本没有 prop1 = "a" 的记录。现在我可以继续重试,直到我得到带有 prop1 = "a" 的那些(我需要这个,因为我想向用户显示带有 prop1 = "a" 的结果作为第一组结果)但我可能不得不拉因为我的 Cosmos DB 中有一个庞大的数据集,所以获得第一条记录需要 100 次。
如何在 Cosmos 中处理这种情况?谢谢!
【问题讨论】:
-
是的,但我不能自定义排序吗?就像我如何对上面的场景进行排序以应用顺序然后使用偏移限制?
-
我会添加一个答案。这是可能的,但您需要做一些工作。
-
@Andy 谢谢!对此的任何帮助将不胜感激!
标签: azure azure-cosmosdb azure-cosmosdb-sqlapi