【发布时间】:2015-07-01 13:37:42
【问题描述】:
我正在使用 DynamoDB 并通过将 JSON 传递给它来存储文档,所有这些都使用 Java 中的 DynamoDBMapper 类。
将数据放入表中很简单。如果您有可用的 Hash 或 Range 值,还可以查询该表。
但我想对 JSON 文档中的值执行扫描(我假设)。我一直在寻找示例,但我找不到任何示例,或者至少在使用 DynamoDBMapper 做事方式时找不到。
那么我认为可以做到这一点是对的吗?如果是这样,有没有人有这样做的例子?具体来说,如何指定要查询的文档/JSON 中的属性?
我的表设置了一个哈希、范围和一个包含传递给它的 JSON 的“文档”属性。因此,如果我想检查该“文档”中的“名称”值,如何在 Condition 中指定?
这是我尝试过的代码 sn-p 示例:
DynamoDBScanExpression scanExpression = new DynamoDBScanExpression();
scanExpression
.addFilterCondition(
"document.name",
new Condition().withComparisonOperator(
ComparisonOperator.EQ)
.withAttributeValueList(
new AttributeValue()
.withS(existingWebsiteName)));
List<PublisherSite> scanResult = getMapper().scan(PublisherSite.class, scanExpression);
我也尝试将attributeName 指定为“名称”,但这也不起作用。我没有返回任何结果。
【问题讨论】:
-
您能否添加您的
PublisherSite代码和mapper.save()呼叫以拨打MCVE? -
首先尝试使用更简单的标量值(而不是地图或文档类型)进行查询...看看它是否有效,请放置一些您存储在数据库中的 JSON 示例。谢谢
标签: java amazon-dynamodb document-database