【发布时间】:2018-10-01 02:28:05
【问题描述】:
我正在使用 Node.js 和 DynamoDB JavaScript SDK 进行开发。
我有一个使用“ID”作为分区键(哈希键)和“时间”作为排序键(范围键)的表。我想从多个分区键中获取最新的N个数据。
i.e.
Table:
ID | time
01 | 2018-10-01 01:00:00
02 | 2018-10-01 02:00:00
01 | 2018-10-01 04:00:00
03 | 2018-10-01 03:00:00
1. Get the latest 2 data from all partition key
result:
ID | time
01 | 2018-10-01 04:00:00
03 | 2018-10-01 03:00:00
1. Get the latest 2 data from partition key 01 & 02
result:
ID | time
01 | 2018-10-01 04:00:00
02 | 2018-10-01 02:00:00
我可以通过使用 Query 从一个分区键中获取最新的 N 个数据。
var docClient = new AWS.DynamoDB.DocumentClient();
var params = {
TableName: 'tablename',
ScanIndexForward: false,
ExpressionAttributeNames: {
'#id': 'id'
},
ExpressionAttributeValues: {
':id': '01'
},
KeyConditionExpression: '#id = :id',
Limit: 2
};
docClient.query(params, function (err, data) {
...
});
但我不知道如何从多个分区键中获取最新的 N 个数据。如果要从 10 个分区键中获取数据,我应该查询 10 次吗?
【问题讨论】: