1
的我有一个名为组的表,它就会有这样的记录:DynamoDB嵌套查询的设置对象
{
"id": "UniqueID1",
"name": "Ranjeeth",
"emailIdMappings": [
{
"emailId": "[email protected]",
"userId": 324
},
{
"emailId": "[email protected]",
"userId": 325
}
]
},
{
"id": "UniqueID2",
"name": "Ranjeeth",
"emailIdMappings": [
{
"emailId": "[email protected]",
"userId": 325
},
{
"emailId": "[email protected]",
"userId": 326
}
]
}
我需要查询并得到结果如果EMAILID包含输入字符串。 我迄今达成,我不能够得到的结果
AttributeValue attributeValue = new AttributeValue("[email protected]");
Condition containsCondition = new Condition()
.withComparisonOperator(ComparisonOperator.CONTAINS)
.withAttributeValueList(attributeValue);
Map<String, Condition> conditions = newHashMap();
conditions.put("emailIdMappings.emailId", containsCondition);
ScanRequest scanRequest = new ScanRequest()
.withTableName("Group")
.withScanFilter(conditions);
amazonDynamoDB.scan(scanRequest)
dynamoDBMapper.marshallIntoObjects(Group.class, scanResult.getItems());
上面的代码我期待纪录ID UniqueID1,但它是空的。如果你通过"[email protected]"
那么你应该得到两个记录。 使用sdk是com.amazonaws:aws-java-sdk-dynamodb:1.11.155
我试图在aws论坛发布的问题没有多大帮助。