在dynamodb查询中的globalSecondaryIndex上的NOT_NULL查询条件

时间:2016-08-24 06:19:33

标签: amazon-dynamodb

是否可以向dynamodb查询表达式添加约束,该表达式指出GSI应该不为空?

有人可以举例。

是否可以构建如下所示的查询?

new DynamoDBQueryExpression<XXX>()
            .withHashKeyValues(YYY).withKeyConditionExpression(GSI != NULL);

注意: 如果在查询期间可以这样做而不是在过滤时间期间,请告诉我吗?

2 个答案:

答案 0 :(得分:0)

DynamoDB String 属性不能包含NULL或空字符串。

当您尝试插入NULL时,API应抛出以下异常: -

java.lang.IllegalArgumentException: Input value must not be null

当您尝试插入空字符串时,API应抛出以下异常: -

com.amazonaws.AmazonServiceException: One or more parameter values were invalid: An AttributeValue may not contain an empty string

如果要在某些属性(即散列或范围键以外的属性)上添加其他过滤器,可以使用以下语法(即withFilterExpression)。

不等于运算符是“&lt;&gt;”

Map<String, AttributeValue> eav = new HashMap<String, AttributeValue>();
eav.put(":val1", new AttributeValue().withS("Some value"));

DynamoDBQueryExpression<XXX> queryExpression = new DynamoDBQueryExpression<XXX>();
    queryExpression.withHashKeyValues(hashKeyValues);       
    queryExpression.withFilterExpression("docType <> :val1").withExpressionAttributeValues(eav);

答案 1 :(得分:0)

如果您像我一样,并且在找到上述问题的答案时进入了此页面,这是您需要查看的主题

How do you query for a non-existent (null) attribute in DynamoDB