2016-07-02 3 views
0

の値をインクリメントする私も、原子増分を実行するために、インクリメント演算子を使用したいです。 しかし、私はdynamodbマップの使い方/更新方法に関する資料はほとんど見つかりませんでした。 ここで私が持っているPythonのコードは、これまでだDynamoDBの:どのように私はそれらの値</p> <pre><code>eg. {"scores": {"player-a": 10}} </code></pre> <p>と名の<strong>マップ</strong>を維持するために、DynamoDBのを使用しようとしていますマップ

import boto3 
ddb = boto3.client('dynamodb') 
ddb.update_item(TableName='ledger', Key={'week': {'S': '06-12'}}, 
       UpdateExpression='SET scores.player-a = scores.player-a + :val', 
       ExpressionAttributeValues={':val': {'N': '12'}}) 
+0

スコア属性(マップ、リストまたはセット)のデータ型は何ですか? – notionquest

+0

スコア=値のある名前のマップ –

答えて

1

DynamoDBのアップデート項目は式の中で誤解されることから、属性名に特殊文字を防ぐためにExpressionAttributeNamesを使用しています。

更新アイテムは、「 - 」(ハイフン)を含むキー名として「player-a」で構成されています。

ddb.update_item(TableName='ledger', Key={'week': {'S': '06-12'}}, 
       UpdateExpression='SET scores.#s = scores.#s + :val", 
       ExpressionAttributeNames={"#s": "player-a"}, 
       ExpressionAttributeValues={':val': {'N': '12'}}) 
+0

アイテム内にMAPが存在しない場合は、そのコードを挿入するように変更できますか? –

関連する問題

 関連する問題