5

我是亚马逊网络服务的新手。我想检索 dynamo DB 表中在其哈希键中有特定单词的所有条目。它类似于在 oracle DB 中使用 like 运算符。我该怎么做?如果不可能,我如何检索表中的所有条目而不对哈希键提供任何约束,以便稍后我可以遍历所有条目以匹配单词?

4

1 回答 1

16

DynamoDB 的一般想法:

请不要像对待 MySQL 那样考虑 DynamoDB。DynamoDB只是一个键值存储,有几个细节。

key:value 存储的基本原理是:

要么你知道关键,得到你的价值;

要么你不这样做,你就会得到整张桌子。

在 DynamoDB 特定情况下,您可以

  1. 检索一个知道整个密钥的项目GetItem
  2. 检索给定下hash_key的所有项目,可能应用过滤器,使用Query
  3. 检索整个表,可能应用过滤器,使用Scan

这说Scan起来既。你永远不应该使用它,否则你的设计很可能是错误的。

具体到您的问题:

就您而言,听起来您希望将密钥拆分为

  • hash_key
  • range_key

然后您可以使用Query获取所有项目共享hash_key。使用Query,您可以应用过滤器BEGINS_WITH来缩小范围。

请注意,所有 ( hash_key, range_key) 元组都必须是唯一的。

于 2012-10-05T13:45:17.167 回答