这是我浏览每个页面时显示的内容:
如您在此处看到的,该列表在数据库中超过18000个项目。
现在,当我这样做时:
var params = {
TableName : "theTable"
};
db.scan(params, function(err, data) {
if (err) {
console.error(err);
} else {
console.log(data);
}
});
它返回我:
计数:16633,已扫描计数:16633,
为什么会这样?为什么运行代码时为什么不返回所有30000个项目?
答案 0 :(得分:0)
当您的数据集大小超过1.0Mb 时,就会发生这种情况。
无论您的Query
还是Scan
,DynamoDB都会返回所有大小最大为1.0Mb的项目。
从AWS DynamoDB DOCS:
每个呼叫的查询结果集限制为1 MB。您可以使用查询响应中的LastEvaluatedKey检索更多结果。
“扫描”的结果集限制为每个呼叫1 MB。您可以使用扫描响应中的LastEvaluatedKey检索更多结果。
注意:这些限制在将FilterExpressions
应用于检索到的数据集之前适用。
要了解有关dynamoDB限制的更多信息,请遵循该文档。
解决方案::如果您的查询或扫描结果超出限制,则数据集中还会返回一个LastEvaluatedKey
属性,您可以使用它重新运行操作以检索下一组数据项。