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

时间:2015-05-09 00:29:05

标签: amazon-web-services amazon amazon-dynamodb

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

“abcd_aaa”
“abcd_bbb”
“abcd_ccc”

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

2 个答案:

答案 0 :(得分:18)

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

EQ | LE | LT | GE | GT | BEGINS_WITH | BETWEEN

有关详细信息,请参阅Query documentation

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

hashKey : abcd
rangeKey : aaa

通过hashKey(abcd)查询时,您将收到按rangeKey

排序的所有三条记录

答案 1 :(得分:3)

扫描将起作用

类似这样的事情

var params = {
      TableName: "TABLE",
      ScanFilter: {
           "id": {
                ComparisonOperator: "CONTAINS",
                AttributeValueList: ["abcd"]
           }
      }
 };

 var template = null;
 ddb.scan(params, function (err, data) {
      if (err) {
           console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
      } else {
           //console.log("Query succeeded.");
           data.Items.forEach(function (item) {
                console.log(item);
           });
      }
 });