首页 > 解决方案 > DynamoDB - 扫描后应用限制的最佳方法

问题描述

我正在 DynamoDB 表中执行扫描功能,它运行良好。现在,我想限制应用过滤器后的结果。

我已经读过,当我结合使用 FilterExpression 和 Limit 时,DynamoDB 将应用 Limit 然后是 FilterExpression。

有可能做一些相反的事情吗?第一个过滤器比应用限制?我试图避免在代码上这样做,因为它会返回比我需要的更多的数据。

标签: amazon-dynamodb

解决方案


DynamoDB 中没有解决方案,因为它不是为此类操作而设计的。

您可以改为使用 LastEvaluatedKey 对结果进行模拟过滤,尽管这也不是一种有效的操作,并且可能导致全表扫描。

如果为结果页面读取的所有项目都被过滤掉,则 Query 操作可以返回空结果集和 LastEvaluatedKey。

要获取匹配项的完整计数,请从上一个请求中获取 LastEvaluatedKey 值,并将其用作下一个请求中的 ExclusiveStartKey 值。重复此操作,直到 DynamoDB 不再返回 LastEvaluatedKey 值。


推荐阅读