javascript - 将 DynamoDB Scan 操作替换为 Query
问题描述
我正在使用 DynamoDB 扫描操作从 DynamoDB 表中获取所有项目。代码如下:
"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),
};
}
};
但扫描不是一种有效的操作,不推荐。如何使用查询操作从表中获取所有项目?我可以用查询替换扫描操作以获取所有项目吗?有没有其他方法可以从表中获取所有项目?请告诉我。
谢谢
解决方案
扫描只是效率低下,因为它必须查看所有内容。
如果您无论如何都想退回所有东西,那么没有理由不使用 Scan。
事实上,您可以使用内置的并行扫描来加快处理速度。
Query() 必须由您的应用程序代码手动并行运行。
推荐阅读
- azure-pipelines-build-task - 未找到 Azure 构建 Sql Dacpac
- c++ - 如何通过文件处理更改对象中变量的值?
- xamarin.forms - Xamarin 映射 observablecollection 不更新视图
- kivy - Kivy:ScrollView 将布局挤压在一起
- python - Python数据框跳过带有关键错误的行
- elasticsearch - ElasticSearch 聚合过滤器(非嵌套)数组
- reactjs - React 功能组件通信
- azure-devops - ProductionRun 的 Azure DevOps 服务器到服务迁移时间更长?
- lua - LUA - 如何仅屏蔽字符串中的数字?
- meshlab - 在 Meshlab 中 - 当找到修剪模型的表面积时 - 我是只得到模型的外表面还是内部?