gpt4 book ai didi

ios - dynamodb 中的保留关键字 - Swift 3

转载 作者:行者123 更新时间:2023-11-29 11:42:03 26 4
gpt4 key购买 nike

代码如下:

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}

我看过下面的链接,但我不明白它,也找不到 Swift 示例。我该如何做到这一点? http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ExpressionAttributeNames.html#Expressions.ExpressionAttributeNames.ReservedWords

我是 DynamoDB 的新手。

谢谢!

最佳答案

以下是 DynamoDB 中所有保留字的列表: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html

所以 ExpressionAttributeNamesexpressionAttributeValues 是使用 #fooattribute:foovalue 的别名方式,即使 foo 是上面列表中的保留字。

所以在你的情况下,我认为你的错误是因为术语 status 是保留的,你可以尝试将最后一行更改为:

queryExpression.projectionExpression = "#status"

这样你就不会使用保留字,而是读取别名。该别名将解析为您的实际属性名称,也可能是状态。

关于ios - dynamodb 中的保留关键字 - Swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45949956/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com