ダイナモdbクエリ式を使用してダイナモdbにプログラム的にクエリを行う必要があるユースケースがあります。 e.xにAとBの2つの属性があり、フィルタ式を(A='Test' OR A ='Test1') and B='test2'
としたいとします。ダイナモdbのフィルタ式のOR条件
私はこれに関連して検索しましたが、役に立つリソースは見つかりませんでした。 私はdynamo dbを初めて使用しています。
ダイナモdbクエリ式を使用してダイナモdbにプログラム的にクエリを行う必要があるユースケースがあります。 e.xにAとBの2つの属性があり、フィルタ式を(A='Test' OR A ='Test1') and B='test2'
としたいとします。ダイナモdbのフィルタ式のOR条件
私はこれに関連して検索しましたが、役に立つリソースは見つかりませんでした。 私はdynamo dbを初めて使用しています。
あなたのAとBは、あなたがKeyConditionExpression他のすべてでそれらを指定するキー属性である場合は、Java
Table table = dynamoDB.getTable(tableName);
QuerySpec spec = new QuerySpec()
// .withKeyConditionExpression("partitionKey = :id and sortKey > :range") // In case filter expression is on key attributes
.withFilterExpression("(A = :a1 or A = :a2) and B = :b")
.withValueMap(new ValueMap()
//.withString(":id", "Partition key value")
//.withString(":range", 100)
.withString(":a1", "Test")
.withString(":a2", "Test1")
.withString(":b", "test2"))
// .withConsistentRead(true);
ItemCollection<QueryOutcome> items = table.query(spec);
でそれを行う方法ザッツはFilterExpressionになります。
主な相違点キー表現は、名前が示すようにキー属性に適用され、取得したレコードは料金が発生するために取得されますが、フィルタ式はフリーになり、それらのレコードをフェッチした後に適用され、条件レコード。より多くの属性AまたはBのどちらかが、パーティション・キーである http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#FilteringResults
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ExpressionPlaceholders.html
読み、理解するには
。つまり、テーブルのパーティションキーとソートキーは何ですか?また、あなたが使っているプログラミング言語を教えてください。 – notionquest