2017-08-30 15 views
1

スイフトコードです:予約キーワードここでは3

queryExpression.keyConditionExpression = "#userId= :userId" 
queryExpression.expressionAttributeNames = ["#userId":"userId", "#status":"status"] 
queryExpression.expressionAttributeValues = [":userId":userID, ":status":"accept"] 
queryExpression.projectionExpression = "status" 

が、私は次のエラーを持って、私はステータスワードは、DynamoDBのでは予約語であることを知らなかっ:

Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=0 "(null)" UserInfo={message=Invalid ProjectionExpression: Attribute name is a reserved keyword; reserved keyword: status, __type=com.amazon.coral.validate#ValidationException} 

私がしています私はそれを理解していないと私はスウィフトの例を見つけることができません。これをどのように達成するのですか? http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ExpressionAttributeNames.html#Expressions.ExpressionAttributeNames.ReservedWords

私はDynamoDBの新機能です。

ありがとうございます!ここで

答えて

1

は、DynamoDBの中のすべての予約語のリストです:fooは、上記のリスト内の予約語であったとしても#fooattribute:foovalueを使用するエイリアシングの方法 http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html

のでExpressionAttributeNamesexpressionAttributeValuesです。

は、だからあなたの場合には、私はあなたのエラーが用語statusが予約されているので、あなたがあるためにあなたの最後の行を変更してみていると信じて:

queryExpression.projectionExpression = "#status"

あなたが予約を使用していないでしょうその方法代わりにエイリアスを読み込みます。そのエイリアスは、あなたの実際の属性名に解決されます。

+0

更新された投稿をご覧ください。あなたの応答、MangoBoyをありがとう。 – Piotr

+0

新しい質問のために別の投稿をしてください。 – MangoBoy

+0

私は新しい投稿 - https://stackoverflow.com/q/46132580/5921575を作成しました。ありがとう! – Piotr

関連する問題