swift - 具有开始值和结束值的 AWS DynamoDB 查询

标签 swift amazon-web-services amazon-dynamodb

我正在尝试执行一个查询,我想检索高度和宽度在 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/

相关文章:

ios - UIImagePickerController | UIImagePickerController照片库出现但选择不起作用

ios - 搜索栏在 Swift 4 IOS App 中不起作用

ios - 错误 : Instance member cannot be used on type 'ViewController'

mongodb - Kaa Java SDK 不与 AWS 上的 KAA Sandbox MongoDB 同步

mysql - .NET 应用程序发布到 GearHost 并且工作正常,但在 AWS 上不起作用

amazon-web-services - 保护AWS Elasticsearch最佳实践

javascript - 哈希和范围主键的性能 : Dynamodb

ios - 如何为 iOS 应用程序创建带有动画的自定义 View 或控件?

go - 将 golang S2 几何库与 dynamodb 结合使用

javascript - dynamodb putItem 回调函数不起作用