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

Amazon DynamoDB Query for Items whose key contains a substring

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

"abcd_aaa"
"abcd_bbb"
"abcd_ccc"

我想查询一个键中包含"abcd"的位置,将返回这3项。这可能吗?

您只能使用相等运算符 (EQ) 查询 hashKey。也就是说,如果这些值 ("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

排序的所有三个记录

扫描即可

像这样

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);
           });
      }
 });