web-dev-qa-db-ja.com

キーにサブストリングが含まれるアイテムに対するAmazon DynamoDBクエリ

Amazon DynamoDBデータベースを使用していて、さまざまな文字列をキーとして持つアイテムのリストがあります。キーにサブストリングが含まれているアイテムを照会したい。たとえば、キーの一部が次の場合:

"abcd_aaa"
"abcd_bbb"
"abcd_ccc"

キーに「abcd」が含まれる場所を照会すると、これらの3つの項目が返されます。これは可能ですか?

20
daniel

等価演算子(hashKey)を使用してのみEQをクエリできます。これらの値( "abcd_aaa"、 "abcd_bbb"、 "abcd_ccc")がhashKeyに属している場合は、完全に指定する必要があります。一方、Query操作では、いくつかの追加の比較演算子のオプションを使用して、rangeKeyの部分一致を許可します。

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

詳細については、Querydocumentation を参照してください。

1つの可能性は、hashKey and rangeKeyコードの最初の部分はhashKeyで、最後はrangeKeyです。例:

hashKey : abcd
rangeKey : aaa

hashKey(abcd)でクエリするときにこれを行うと、rangeKeyでソートされた3つのレコードすべてを受け取ります。

18
bsd

スキャンは機能します

このようなもの

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