【发布时间】:2020-04-15 01:34:10
【问题描述】:
我有一个用户表,其主哈希键为 userId。每个用户可能/可能没有称为“环境”的字符串属性。 我想获取所有具有“环境”=“xyz”或没有“环境”属性的用户。
下面的代码将过滤那些环境=xyz 的用户,但是我如何过滤那些根本没有环境的项目呢? Dynamo API 不允许过滤空字符串。
AmazonDynamoDBClient client = DbClientManager.getDynamoDbClient();
ArrayList<AttributeValue> avList = new ArrayList<AttributeValue>();
avList.add(new AttributeValue().withS("xyz"));
Condition scanFilterCondition = new Condition()
.withComparisonOperator(ComparisonOperator.EQ.toString())
.withAttributeValueList(avList);
Map<String, Condition> conditions = new HashMap<>();
conditions.put("environment", scanFilterCondition);
ScanRequest scanRequest = new ScanRequest()
.withTableName("users")
.withAttributesToGet(
"userId",
"environment");
.withScanFilter(conditions);
ScanResult result = client.scan(scanRequest);
现在我只是放弃了扫描过滤器,我在客户端进行过滤。位有没有办法在服务器端做到这一点?
谢谢, 艾丽莎
【问题讨论】:
标签: java amazon-dynamodb