是否可以从DynamoDB获取主键以给定字符串结尾的项目?

时间:2015-01-28 14:09:44

标签: ruby amazon-web-services amazon-dynamodb aws-sdk

使用AWS Ruby SDK(或者一般只是DynamoDB)是否可以从仅使用主键的表中获取一个或多个项目,以及该主键以某个字符串结尾的位置?

我没有在文档中遇到明确回答此问题的任何内容,无论是在ruby ddb文档中还是在ddb的常规文档中。我不是说问题没有得到解答,但如果是,我就找不到了。

如果有可能,有人可以提供ruby的示例或链接到存在示例的文档吗?

2 个答案:

答案 0 :(得分:3)

看起来您希望在SDK上使用Query方法来查找您要查找的项目。似乎" EndsWith"但是在SDK中不能用作比较运算符。因此,您需要使用CONTAINS,然后在本地检查您的结果。

这应该会带来最佳性能,让DynamoDb做最初的繁重工作,然后在收到结果后进一步修剪结果。

http://docs.aws.amazon.com/sdkforruby/api/Aws/DynamoDB/Client.html#query-instance_method

答案 1 :(得分:1)

虽然@Ryan是正确的,可以使用query完成,但请记住,您正在进行“全表扫描”。这对于一次性工作来说可能没问题,但可能不是常规任务的最佳实践(当然也不是API调用的一部分)。

如果您的用例涉及根据特定字段中的后缀快速查找对象,请考虑将此后缀(假设它是固定大小的后缀)作为另一个字段提取并在该字段上具有二级索引。如果你想查询任意长度的后缀,我会创建一个查找表并用可能的后缀(或其中一些,以保存一些调用,然后在查询时进行过滤)更新它。