man*_*nyu 5 pagination amazon-dynamodb
按照我的理解。查询操作将在提到的索引上寻找结果,直到满足以下条件之一
因此,DynamoDB 查询将根据上述条件获取结果,然后它会应用 FilterExpression,因此它很可能不会向您返回任何结果,因此它将返回空集和 LastEvaluatedKey
与 Scan 操作不同,Query 操作永远不会同时返回空结果集和 LastEvaluatedKey 值。
有人可以帮助解释上述文档声明的实际含义吗?
因为在实践中,当我使用带有限制和FilterExpression 的queryPage API 时,我得到了相反的结果,即我得到了一个空集以及 LastEvaluatedKey。
我的上述理解是否正确?是否可以同时获得空结果和 lastEvaluatedKey 值?或者我错过了一些东西,因为我得到了空的结果?(根据文档,我不应该得到它。如果我没有得到空结果,那就太好了)
我也遇到了和你一样的问题,阅读文档后,我发现以下描述解释了原因。根据 Amazon 文档,“在查询操作中,DynamoDB 按排序顺序检索项目,然后使用 KeyConditionExpression 和可能存在的任何 FilterExpression 处理这些项目。”
所以它解释了为什么你会得到这些结果。过滤操作是在查询结果之后进行的,所以无论是否应用FilterExpression,Query操作都没有区别,所以会看到lastEvaluatedKey,和没有应用FilterExpression的没有区别。
因此,实现您想要的唯一可能的方法是使用全局二级索引,您想要过滤的列,您可以将其作为排序键。在这种情况下,您可以使用RangeKeyCondition()进行查询。
| 归档时间: |
|
| 查看次数: |
2073 次 |
| 最近记录: |