Java DynamoDB DynamoDBQueryExpression混合条件运算符

Java DynamoDB DynamoDBQueryExpression混合条件运算符,java,amazon-web-services,amazon-dynamodb,nosql,Java,Amazon Web Services,Amazon Dynamodb,Nosql,使用DynamoDBQueryExpression执行复杂查询的最佳方法是什么 默认情况下,将在提供的所有条件下执行一个AND 我如何执行(C1&&C2&&C3|C4|C5)之类的操作?使用dynamodbjavaapi是否可能?DynamoDB使用“com.amazonaws.services.dynamodbv2.document.spec.QuerySpec”支持复杂条件。可以使用FilterExpression编写AND或OR条件 请参见下面的示例:- 1) withKeyConditi

使用DynamoDBQueryExpression执行复杂查询的最佳方法是什么

默认情况下,将在提供的所有条件下执行一个AND


我如何执行(C1&&C2&&C3|C4|C5)之类的操作?使用dynamodbjavaapi是否可能?DynamoDB使用“com.amazonaws.services.dynamodbv2.document.spec.QuerySpec”支持复杂条件。可以使用FilterExpression编写AND或OR条件

请参见下面的示例:-

1) withKeyConditionExpression-用于哈希键和范围键表达式

2) withFilterExpression-用于所有其他属性(即除关键属性外)

ItemCollection items=null;
QuerySpec QuerySpec=新QuerySpec();
ValueMap ValueMap=新的ValueMap();
valueMap.with字符串(“:autoIdVal”,autoID);
valueMap.with字符串(“:docTypeVal”,docType);
valueMap.with字符串(“:username”,username);
valueMap.with字符串(“:comment”,comment);
Map nameMap=新建LinkedHashMap();
nameMap.put(“#comment”,“comment”);
querySpec.withKeyConditionExpression(“autoID=:autoIdVal”)。withFilterExpression(((docType=:docTypeVal和username=:username)或(#comment=:comment))
.withValueMap(valueMap)
.使用名称地图(名称地图);
items=table.query(querySpec);
迭代器迭代器=items.Iterator();
Item itemData=null;
while(iterator.hasNext()){
itemData=iterator.next();
System.out.println(“Json数据====================>”+itemData.toJSONPretty());
}
ItemCollection<QueryOutcome> items = null;

        QuerySpec querySpec = new QuerySpec();

        ValueMap valueMap = new ValueMap();
        valueMap.withString(":autoIdVal", autoID);
        valueMap.withString(":docTypeVal", docType);
        valueMap.withString(":username", username);
        valueMap.withString(":comment", comment);

        Map<String, String> nameMap = new LinkedHashMap<>();
        nameMap.put("#comment", "comment");

        querySpec.withKeyConditionExpression("autoID = :autoIdVal").withFilterExpression("(docType = :docTypeVal AND username = :username) OR (#comment = :comment)")
                .withValueMap(valueMap)
                .withNameMap(nameMap);

        items = table.query(querySpec);

        Iterator<Item> iterator = items.iterator();

        Item itemData = null;

        while (iterator.hasNext()) {
            itemData = iterator.next();

            System.out.println("Json data ====================>" + itemData.toJSONPretty());

        }