如何在 node.js 中使用 dynamodb 扫描操作获取整个表数据

sam*_*son 1 amazon-dynamodb

表名:用户编号 行数:100000

如何在 node.js 的帮助下使用扫描操作获取所有记录。

var params = {
    TableName:"users"};

docClient.scan(params, (error, result) => {
    if (error) {
      console.log('error', error);
    } else {
      console.log(result.Items); // x items
    }
});
Run Code Online (Sandbox Code Playgroud)

但它只显示部分数据。不是整个表数据。

cem*_*cks 8

您可以在请求中使用eachPage函数。

docClient.scan(params).eachPage((err, data, done) => { ... })
Run Code Online (Sandbox Code Playgroud)

您还可以使用从一次扫描结果中获得的 lastEvaluatedKey 作为下一次的exclusiveStartKey。https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Query.html#Query.Pagination

  • 尝试`docClient.scan(params).eachPage((err,数据,完成)=> {console.log(数据);完成();}` (2认同)
  • 它的工作..谢谢你我尝试,`var count = 0; docClient.scan(params).eachPage((err, data, done) => { if (data != null) { for (let index = 0; index < data.Items.length; index++) { const element = data. Items[index]; count++; console.log("TOTAL::> " + count + " ITEM::> " + index + " DATA:: " + JSON.stringify(element)); } } done(); } );` (2认同)