Amazon DynamoDB查询其键包含子字符串的项目

dan*_*iel 17 amazon amazon-web-services amazon-dynamodb

我正在使用Amazon DynamoDB数据库,并且我有一个包含各种字符串的项目列表作为密钥.我想查询其键包含子字符串的项目.例如,如果某些键是:

"abcd_aaa"
"abcd_bbb"
"abcd_ccc"

我想查询一个键包含"abcd"的位置,这三个项目将被返回.这可能吗?

谢谢

bsd*_*bsd 20

您只能hashKey使用相等运算符(EQ)查询.如果那些值("abcd_aaa","abcd_bbb","abcd_ccc")属于你hashKey那么你必须完全提供它们.另一方面,该Query操作允许在rangeKey一些额外的比较运算符的选项上进行部分匹配:

EQ | LE | LT | GE | GT | BEGINS_WITH | BETWEEN
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅Query 文档.

一种可能性是使用hashKey and rangeKey代码的第一部分hashKey和最后一部分rangeKey,例如:

hashKey : abcd
rangeKey : aaa
Run Code Online (Sandbox Code Playgroud)

通过hashKey(abcd)查询时,您将收到按顺序排序的所有三个记录rangeKey

  • 如果您需要有两个以上的值作为键,DynamoDB 最佳实践详细介绍了如何从分层值构建排序键 https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-sort -keys.html (2认同)