用查询替换 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() 必须由您的应用程序代码手动并行 运行。
我正在使用 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() 必须由您的应用程序代码手动并行 运行。