【发布时间】:2015-04-02 10:14:47
【问题描述】:
我需要按位于一列中的子字段 JSON 扫描表。不幸的是,我在 Java 中找不到任何示例,也不知道是否可行。
这是我的数据,这个 json 代表对象 - dynamodb 中的一行。 json 代表 3 个 java 类: - 包含类城市和一些字符串记录的主类 - 城市包含一条路
是否可以扫描数据库并找到 mainName = "xyz" 并具有名为 "Rockingham" 的城市记录的记录
{
"Id": "9",
"mainName": "xyz",
"floatVariable": 228.3,
"city": [
{
"name": "Rockingham",
"road": [
{
"roadName": "Traci",
"roadLength": 118
},
{
"roadName": "Watkins",
"roadLength": 30
}
]
}
],
“房子”:{ “huseName”:“温迪·卡森” } }
我有一些这样的工作,但这不足以查询正确的数据。 表表 = dynamoDB.getTable(tableName);
Map<String, Object> expressionAttributeValues = new HashMap<String, Object>();
expressionAttributeValues.put(":pr", 300);
ItemCollection<ScanOutcome> items = table.scan(
"floatVariable < :pr", //FilterExpression
"Id, mainName, floatVariable, city" , //ProjectionExpression
null, //ExpressionAttributeNames - not used in this example
expressionAttributeValues);
System.out.println("Scan of " + tableName + " for items with a price less than 300.");
Iterator<Item> iterator = items.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next().toJSONPretty());
}
我在 php 中看到了一个类似这样的示例,但不幸的是它在 Java 中不起作用。
ItemCollection<ScanOutcome> items = table.scan(
" cites.name = :dupa ", //FilterExpression
"Id, mainName, floatVariable, city", //ProjectionExpression
null, //ExpressionAttributeNames - not used in this example
expressionAttributeValues);
【问题讨论】:
-
" cites.name = :dupa ", //FilterExpression 我想写“city.name”
标签: java json amazon-dynamodb