用查询替换 DynamoDB 扫描操作

Replace DynamoDB Scan operation with Query

我正在使用 DynamoDB 扫描操作从 DynamoDB table 获取所有项目。代码如下:

"use strict";
const AWS = require("aws-sdk");

module.exports.get = async () => {
  try {
    const dynamodb = new AWS.DynamoDB.DocumentClient();

    console.log("getting items");

    const params = {
      TableName: "ProductsTable",
    };

    const result = await dynamodb.scan(params).promise();

    console.log("got results", result.Items);

    return { body: JSON.stringify(result.Items) };
  } catch (error) {
    console.error(error);
    return {
      status: 500,
      message: error.message,
      body: JSON.stringify(error),
    };
  }
};

但是扫描不是一种有效的操作,因此不推荐使用。如何使用查询操作从 table 中获取所有项目?我可以用查询替换扫描操作来获取所有项目吗?还有其他方法可以从 table 获取所有项目吗?请告诉我。

谢谢

扫描只是效率低下,因为它必须查看所有内容。

如果您想 return 无论如何,没有理由不使用扫描。

事实上,您可以使用内置的 parallel scan 来加快这个过程。

Query() 必须由您的应用程序代码手动并行 运行。