2016-05-10 5 views
1

UpdateExpressionでADDを使用して、文字列セットに電子メール文字列を追加しようとしましたが、この例外が発生しました。無効なUpdateExpression:オペレータまたは関数のオペランドタイプが正しくありません。演算子:ADD、オペランド・タイプ:LIST。無効なUpdateExpression:オペレータまたは関数のオペランドタイプが正しくありません。オペレータ:ADD、オペランドタイプ:LIST

私は、タイプを "文字列セット"に変更する方法が必要だと思いますが、それを達成するための意味論が何であるかはわかりません。

TypeSerializerクラス( http://boto3.readthedocs.io/en/latest/_modules/boto3/dynamodb/types.html )を参照することにより
 response = wishesTable.update_item(
      Key={ 
       'title': wishTitle, 
       'userMail': wishUsermail 
      }, 
      UpdateExpression='ADD whoLikeList :my_value', 
      ExpressionAttributeValues={ 
       ":my_value": [userEmail] 
      }, 
      ReturnValues="UPDATED_NEW" 
     ) 

答えて

1

以下にコードを変更し、それが集合として扱うであろう:

 response = wishesTable.update_item(
      Key={ 
       'title': wishTitle, 
       'userMail': wishUsermail 
      }, 
      UpdateExpression='ADD whoLikeList :my_value', 
      ExpressionAttributeValues={ 
       ":my_value": set([userEmail]) 
      }, 
      ReturnValues="UPDATED_NEW" 
     ) 
関連する問題