DynamoDB扫描计数与实际项目数不同

时间:2018-09-06 00:40:02

标签: amazon-dynamodb

这是我浏览每个页面时显示的内容:

enter image description here

如您在此处看到的,该列表在数据库中超过18000个项目。

现在,当我这样做时:

var params = {
  TableName : "theTable"
};

db.scan(params, function(err, data) {
  if (err) {
      console.error(err);
  } else {
      console.log(data);
  }
});

它返回我:

  

计数:16633,已扫描计数:16633,

为什么会这样?为什么运行代码时为什么不返回所有30000个项目?

1 个答案:

答案 0 :(得分:0)

当您的数据集大小超过1.0Mb 时,就会发生这种情况。 无论您的Query还是Scan,DynamoDB都会返回所有大小最大为1.0Mb的项目。 从AWS DynamoDB DOCS:

  

每个呼叫的查询结果集限制为1 MB。您可以使用查询响应中的LastEvaluatedKey检索更多结果。

     

“扫描”的结果集限制为每个呼叫1 MB。您可以使用扫描响应中的LastEvaluatedKey检索更多结果。

注意:这些限制在将FilterExpressions应用于检索到的数据集之前适用。

要了解有关dynamoDB限制的更多信息,请遵循该文档。

解决方案::如果您的查询或扫描结果超出限制,则数据集中还会返回一个LastEvaluatedKey属性,您可以使用它重新运行操作以检索下一组数据项。