是否可以在dynamodb查询表达式中添加约束,说明GSI不应该为空?
谁能举个例子。
是否可以构造如下所示的查询?
new DynamoDBQueryExpression<XXX>()
.withHashKeyValues(YYY).withKeyConditionExpression(GSI != NULL);
注意:请让我知道这是否可能在查询期间,而不是在过滤时间?
如果你和我一样,在寻找上述问题的答案时登陆了这个页面,这里是你需要看到的线程
如何查询DynamoDB中不存在的(null)属性
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;> "
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);