我使用Lambda(node.js)从DynamodDB获取特定数据并将其发送到Android应用程序。问题是我不想一次性发送在Node.js中满足我条件的每个数据。我在我的Android应用程序的列表视图中查看这些数据。在我的数据库中可能有数百万条记录,可能需要很长时间才能获得所有这些数据。我正在考虑发送这些数据的有效方法。我的想法是只发送第一个(例如)20条记录,当用户向下滚动列表发送请求到具有最后记录ID的服务器时,查看数据库并向应用程序发送另外20条记录。有没有更好的方法呢?
答案 0 :(得分:4)
dynamoDB的amazon API允许您限制在GET和SCAN操作中获取的结果数。
javascript sdk允许您指定Limit
。
API返回LastEvaluatedKey,这将允许您检索更多结果。
当您发出下一个请求时,将LastEvaluatedKey值作为ExclusiveStartKey传递。
由于Lambda是无状态的,因此您需要将LastEvaluatedKey传递回客户端,并在需要下次检索时将其传递回函数。
参考文档: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#query-property https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#scan-property