假设我有一个函数:
函数分类器(a, b)
它有一个规则来定义如果行值a比行值b"大"(所以如果a>b返回1,如果行值a比行值b"小"返回-1)
我可以按这个函数对结果进行排序吗?
一个例子可以是"log"数学函数函数(不好的例子,因为它是单调递增的),其中a和b是正整数。
我能想到的唯一方法就是简单地获取所有匹配我的查询的行,然后逐个循环并使用我的排序函数对它们进行排序。在我的示例查询中,数据集返回了> 30k行,我估计在最坏的情况下可以返回多达100k行。所以我宁愿不循环遍历结果(这是一个web应用程序,需要实时响应)。
编辑:我应该补充一下,排序函数是时间相关的,并且具有随时间变化值的变量。
查询DynamoDB时,记录将按范围键排序,您可以决定升序或降序排序。不能使用DynamoDB指定任何其他排序顺序。
通过任何其他方法排序记录都需要由应用程序代码执行。