我收集了100条记录,
集合名称:'users'
{
"name":'senthilkumar',
"email":'senthily88@gmail.com', //HashKey
"age":21,
"created":1465733486137, //RangeKey-timestamp
}
Run Code Online (Sandbox Code Playgroud)
我需要明智地获取以下sql查询的记录
select * from users order by created desc limit 10
Run Code Online (Sandbox Code Playgroud)
我如何从DynamoDB获取上述查询格式记录
Eya*_* Ch 16
Dynamodb按范围键属性对结果进行排序.为了获得asc/desc顺序,你应该使用ScanIndexForward参数.
资源:http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html
使用KeyConditionExpression参数为分区键提供特定值.Query操作将返回表或索引中具有该分区键值的所有项.您可以选择通过在KeyConditionExpression中指定排序键值和比较运算符来缩小Query操作的范围.您可以使用ScanIndexForward参数按排序键以正向或反向顺序获取结果.
要将 Json 数据保存到 DynamoDB,我们使用 put()
var Newparams = {
TableName: this.SuffleTableName,
Item: {
"userId": /* YOUR PRIMARY KEY */,
"addedAt": /* YOUR SORT KEY */,
"status": /* Additional Datas */,
}
}
Run Code Online (Sandbox Code Playgroud)
使用 Query() 从 DynamoDB 获取数据
QueryParam = {
TableName: 'YOUR TABLE NAME HERE',
IndexName: 'YOUR INDEX NAME HERE', //IF YOUR CREATED NEW INDEX
KeyConditionExpression: "UserId = :UserId ", //YOUR PRIMARY KEY
ExpressionAttributeValues: {
":UserId": UserId,
},
ScanIndexForward: false, //DESC ORDER, Set 'true' if u want asc order
ExclusiveStartKey: LastEvalVal, //Pagination - LastEvaluatedKeyPair
Limit: 10 //DataPerReq
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11837 次 |
| 最近记录: |