【发布时间】:2019-10-28 23:23:15
【问题描述】:
我正在使用 DynamoDB 来存储 Web 应用程序的记录。
每条记录都有一个 uuid(分区键)和一个 unix 时间戳(排序键)。 如何获取按最新时间戳排序的所有记录?
使用扫描很昂贵,并且使用 Query 提交分区键显然是必要的
我已经尝试过的代码出现以下错误:
Query condition missed key schema element: uuid
我的服务:
serverCallChats() {
return new Promise(async (resolve, reject) => {
const _dynamoDB = new AWS.DynamoDB.DocumentClient();
const daysBack = (days) => {
const date = new Date();
date.setDate(date.getDate() - days);
return date.getTime();
};
const params = {
TableName: 'chat-channel',
KeyConditionExpression: '#sortKeyName < :days',
ExpressionAttributeNames: {
'#sortKeyName': 'timestamp'
},
ExpressionAttributeValues: {
':days': daysBack(7)
}
};
【问题讨论】:
-
您需要多久进行一次这样的查询?最佳和最具成本效益的解决方案也取决于此。
-
@Kirk 简短的回答很常见。
标签: angular amazon-web-services nosql amazon-dynamodb