我正在尝试执行一个查询,我想检索高度和宽度在 2 个定义值之间的所有项目,如下所示:
let queryExpression = AWSDynamoDBQueryExpression()
queryExpression.filterExpression = ":widthSmall < #width < :width AND :heightSmall < #height < :height"
queryExpression.keyConditionExpression = "#addedByType = :addedByType"
queryExpression.expressionAttributeNames = ["#addedByType": "addedByType", "#width": "widthSmall","#height": "heightSmall","#width": "width","#height": "height"]
queryExpression.expressionAttributeValues = [":addedByType": "APPUSER", ":widthSmall": 50, ":heightSmall": 50, ":width": 100, ":height": 100]
queryExpression.scanIndexForward = false
queryExpression.limit = 200
由于表达式属性名称,这会引发以下错误
fatal error: Dictionary literal contains duplicate keys
检查的正确方法是什么?
最佳答案
好吧,经过相当多的尝试和错误,我已经弄清楚我做错了什么,并得到了以下结果:
queryExpression.filterExpression = ":widthSmall < #width1 AND #width < :width AND :heightSmall < #height1 AND #height < :height"
queryExpression.keyConditionExpression = "#addedByType = :addedByType"
queryExpression.expressionAttributeNames = ["#addedByType": "addedByType", "#width1": "width","#height1": "height", "#width": "width", "#height": "height"]
queryExpression.expressionAttributeValues = [":addedByType": "APPUSER", ":widthSmall": 50, ":heightSmall": 50, ":width": 101, ":height": 101]
问题是我在字典中引用了两次相同的键
关于swift - 具有开始值和结束值的 AWS DynamoDB 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41940940/