Amazon web services dynamo db滤波器表达式中的OR条件

Amazon web services dynamo db滤波器表达式中的OR条件,amazon-web-services,amazon-dynamodb,query-expressions,Amazon Web Services,Amazon Dynamodb,Query Expressions,我有一个用例,需要使用dynamodb查询表达式以编程方式查询dynamodb。 e、 假设A和B有两个属性,我想要一个过滤器表达式,如(A='Test'或A='Test1')和B='test2' 我搜索了与此相关的内容,但没有找到有用的资源。 我是迪纳摩db的新手 在java中就是这样做的 Table table = dynamoDB.getTable(tableName); QuerySpec spec = new QuerySpec() // .withKeyConditionExp

我有一个用例,需要使用dynamodb查询表达式以编程方式查询dynamodb。 e、 假设A和B有两个属性,我想要一个过滤器表达式,如
(A='Test'或A='Test1')和B='test2'

我搜索了与此相关的内容,但没有找到有用的资源。
我是迪纳摩db的新手

在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);
Table Table=dynamoDB.getTable(tableName);
QuerySpec spec=新QuerySpec()
//.withKeyConditionExpression(“partitionKey=:id和sortKey>:range”)//如果筛选器表达式位于键属性上
.withFilterExpression(“(A=:a1或A=:a2)和B=:B”)
.withValueMap(新的ValueMap()
//.with字符串(“:id”,“分区键值”)
//.with字符串(“:range”,100)
.带字符串(“:a1”,“测试”)
.带字符串(“:a2”,“Test1”)
.with字符串(“:b”,“test2”))
//.具有一致性(正确);
ItemCollection items=table.query(spec);
如果A和B是键属性,则在KeyConditionExpression中指定它们,否则所有内容都在FilterExpression中

主要区别在于,正如名称所示,键表达式应用于键属性,获取记录是因为它是您要付费的,而筛选器表达式是免费的,在获取这些记录后应用,只返回与筛选器条件记录匹配的记录

要了解更多,请阅读


属性A或B都是分区键。换句话说,表的分区键和排序键是什么?另外,请告诉我您正在使用的编程语言?