是否可以向dynamodb查询表达式添加约束,该表达式指出GSI应该不为空?
有人可以举例。
是否可以构建如下所示的查询?
new DynamoDBQueryExpression<XXX>()
.withHashKeyValues(YYY).withKeyConditionExpression(GSI != NULL);
注意: 如果在查询期间可以这样做而不是在过滤时间期间,请告诉我吗?
答案 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