【发布时间】:2020-05-27 19:36:17
【问题描述】:
我一直在尝试使用 begin_with 选项从 Dynamodb 获取访问列表,但似乎无法理解为什么在 Xcode/swift 5 中运行时找不到结果。
我可以在节点工作台和 AWS 控制台上运行查询。我有相同的代码用于简单查询。
getUser() 函数正在工作
func getUser() {
// 1) Configure the query
let queryExpression = AWSDynamoDBQueryExpression()
queryExpression.keyConditionExpression = "#UserID = :UserID AND #UserDataType = :UserDataType"
queryExpression.expressionAttributeNames = [
"#UserID": "UserID",
"#UserDataType": "UserDataType"
]
queryExpression.expressionAttributeValues = [
":UserID" : "1001",
":UserDataType" : "User"
]
// 2) Make the query
let dynamoDbObjectMapper = AWSDynamoDBObjectMapper.default()
dynamoDbObjectMapper.query(HiViz.self, expression: queryExpression) { (output: AWSDynamoDBPaginatedOutput?, error: Error?) in
if error != nil {
print("The request failed. Error: \(String(describing: error))")
}
if output != nil {
for books in output!.items {
let booksItem = books as? HiViz
print("\(booksItem!.Visitorid!)")
}
}
}
}
queryHiVizTable 包含begins_with,我不知道如何解决没有返回结果的问题。
func queryHiVizTable() {
// 1) Configure the query
let queryExpression = AWSDynamoDBQueryExpression()
queryExpression.keyConditionExpression = "#UserID = :UserID AND begins_with(#UserDataType, :UserDataType)"
queryExpression.expressionAttributeNames = [
"#UserID": "UserID",
"#UserDataType": "UserDataType"
]
queryExpression.expressionAttributeValues = [
":UserID" : "1001",
":UserDataType" : "V)"
]
// 2) Make the query
let dynamoDbObjectMapper = AWSDynamoDBObjectMapper.default()
dynamoDbObjectMapper.query(HiViz.self, expression: queryExpression) { (output: AWSDynamoDBPaginatedOutput?, error: Error?) in
print(queryExpression)
if error != nil {
print("The request failed. Error: \(String(describing: error))")
}
if output != nil {
for books in output!.items {
let booksItem = books as? HiViz
print("\(booksItem!.Visitorid!)")
}
}
}
}
AWS 新手,非常感谢您的帮助。
谢谢
戴夫
【问题讨论】:
标签: amazon-web-services amazon-dynamodb swift5