3

我正在尝试在本地运行 AWS Dynamo 教程中的以下示例,第 3 步:放置、更新和删除项目

就我而言,它是:

val client: AmazonDynamoDBClient = new AmazonDynamoDBClient().withEndpoint("http://localhost:7777")

val dynamoDB: DynamoDB = new DynamoDB(client)

val  table: Table = dynamoDB.getTable("Catalog")

try {

    val rating: java.util.List[Float] = new java.util.LinkedList[Float]()

    rating.add(1)

    val newItem: Item = new Item().withPrimaryKey("Title", "Title here").withInt("Country", 1).
        withList("Ratings", rating)

    val outcome: PutItemOutcome = table.putItem(newItem)

    System.out.println("PutItem succeeded:\n" + outcome.getPutItemResult)

    } catch {

       case exception: Exception => System.out.println(exception.getMessage)

}

输出是:

PutItem 成功:{}

在本地 DynamoDB 控制台中:

var params = { 
TableName: "Catalog",
Key: {
    "Title":"Title Here",
}
};

docClient.get(params, function(err, data) {
  if (err)
    console.log(JSON.stringify(err, null, 2));
  else
    console.log(JSON.stringify(data, null, 2));
});

输出:

{“项目”:{“标题”:“此处的标题”,“评分”:[1],“国家”:1}}

4

1 回答 1

2

您需要在 PutItem 请求中设置ReturnValuesALL_OLD以获取返回的值,但即便如此,它也只会包含被替换的值。

http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html#DDB-PutItem-request-ReturnValues

使用您的代码,您需要执行诸如替换之类的操作

val outcome: PutItemOutcome = table.putItem(newItem)

val putItemSpec: PutItemSpec = new PutItemSpec()
    .withItem(newItem)
    .withReturnValues(ReturnValue.ALL_OLD)
val outcome: PutItemOutcome = table.putItem(putItemSpec)
于 2016-04-20T13:53:56.323 回答