BoardId | DateTime | Data | Type
-------------------------------------------------
1 | 20180424T123508Z | 68.1 | U
1 | 20181026T143233Z | 38.2 | T
1 | 20190108T120150Z | 38.1 | T
2 | 20180425T092311Z | 63.4 | U
分区密钥
“DateTime”是
排序键
.
我曾经
AWSDynamoDBObjectMapper#scan
要执行此操作,请使用以下代码:
let dbObjMapper = AWSDynamoDBObjectMapper.default()
let scanExpression = AWSDynamoDBScanExpression()
scanExpression.limit = 10
scanExpression.filterExpression = "#id = :id AND contains(#dt, :dt)"
scanExpression.expressionAttributeNames = [
"#id" : "BoardId",
"#dt" : "DateTime"
]
scanExpression.expressionAttributeValues = [
":id" : "1",
":dt" : "2019"
]
dbObjMapper
.scan(Event.self, expression: scanExpression)
.continueWith(block: {
(task: AWSTask<AWSDynamoDBPaginatedOutput>!) -> Any? in
if let error = task.error as NSError? {
print("The request failed. Error: \(error)")
} else if let paginatedOutput = task.result {
print("The request was successful.")
print(paginatedOutput.items.count)
for event in paginatedOutput.items as! [Event] {
print(event)
}
}
return ()
})
但是我得到了一个空的结果。没有错误(“
请求成功。
)但打印
paginatedOutput.items.count
我的英语怎么了
AWSDynamoDBScanExpression
我尝试使用其他扫描配置:
-
filterExpression
好啊
,最多可返回10项
-
#id = :id
好啊
,返回最多10个BoardId为1的项目
-
contains(#dt, :dt)
=>没有错误,但也返回空结果
-
设定
scanExpression.indexName
到某个索引,其中“DateTime”
排序键(例如“BoardId”)是
分区密钥
排序键
)=>
好啊
报纸上没有提到这一点
AWS SDK for iOS docs
或者在
AWS Working with Scan docs
使用Scan,您可以在筛选器表达式中指定任何属性,包括分区键和排序键属性
")