从ExclusiveStartKey
的DynamoDB API参考(对于Scan
和Query
),我们有:
此操作将评估的第一个项的主键。使用上一操作中为LastEvaluatedKey返回的值。
我有一个用例,其中我想使用ExclusiveStartKey
从特定的已知位置开始扫描(而不是使用它来继续现有扫描)。上面的第一句听起来确实没问题,但第二句却没有。第二句让我停下来特别是因为它不是“你应该[...]”或“你必须[...]”,只是一个没有背景或解释的普通命令。
我在这方面使用ExclusiveStartKey
在SO或其他地方找不到任何例子。它似乎有效,但API参考似乎含糊不清是否合同。我应该寻求不同的路线吗?有没有人在实践中使用过这个并且可以确认它是否可靠?
是的,您应该将ExclusiveStartKey用于此用例,因为这就是它的用途。如果您遇到第一次打电话而且还不知道从哪里开始的情况(没有LastEvaluatedKey),那么您可以简单地不包括ExclusiveStartKey,因为它是可选的。
我认为第二句很明显暗示“应该”,并且他们没有说“必须”的原因是因为你可以在技术上使用任何扫描的键,但你可以,并且在正确扫描所有对象的情况下,应该使用LastEvaluatedKey。