【发布时间】:2016-04-28 10:48:21
【问题描述】:
据我了解。 查询操作将在提到的索引上查找结果,直到满足以下条件之一
- 结果集已用尽。
- 检索到的项目数达到 Limit 参数的值(如果指定)。
- 检索的数据量达到最大结果集大小限制 1 MB。 记录在案Here
因此 DynamoDB 查询将根据上述条件获取结果,然后应用 FilterExpression,因此它很可能不会向您返回任何结果,因此它将返回空集和 LastEvaluatedKey
但我在documentation中也读到了以下内容
与 Scan 操作不同,Query 操作从不返回空结果集和 LastEvaluatedKey 值。
有人可以帮忙解释一下上述文档声明的实际含义吗?
因为在实践中,当我使用 limit 和 FilterExpression 使用 queryPage API 时,我得到了相反的结果,即我得到一个空集以及 LastEvaluatedKey。
我的上述理解正确吗?是否可以获得空结果和 lastEvaluatedKey 值?或者我错过了一些东西,因为我得到了空的结果? (根据文档我不应该得到它。如果我没有得到空结果会很棒)
【问题讨论】:
-
您可能会获得密钥,但您是否也在 lastEvaluatedKey 中获得了价值?
-
是的。我正在获取价值。
-
From here 过滤器被 dynamo 应用于查询的结果,所以也许您查询到了响应的限制,然后您的过滤器将它们清除了?在没有过滤器的情况下尝试相同的查询应该会让您知道。
标签: pagination amazon-dynamodb