我需要通過位於一列中的子字段JSON掃描表。不幸的是,我無法在Java中找到任何地方的例子,也不知道它是否可能。DynamoDB高級掃描 - JAVA
這是我的數據,這個json表示對象 - dynamodb中的一行。 JSON的代表3 Java類: - 包含級城市和一些串記錄 主類 - 城市包含一類道路
是否可以掃描數據庫,並找到mainName =「XYZ」的記錄,已經被稱爲 「羅金厄姆」
{
"Id": "9",
"mainName": "xyz",
"floatVariable": 228.3,
"city": [
{
"name": "Rockingham",
"road": [
{
"roadName": "Traci",
"roadLength": 118
},
{
"roadName": "Watkins",
"roadLength": 30
}
]
}
],
「房子」 一個城市的記錄:{ 「huseName」: 「溫迪·卡森」 }}
我有一些像這樣,這工作,但這個爲n不足以查詢正確的數據。 Table table = 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」 – Wojciech 2015-04-02 10:44:38