Kha*_*led 6 node.js amazon-dynamodb
我有以下 Node js 代码,应列出 DynamoDB 表中的所有项目,
import * as dynamoDbLib from "../../libs/dynamodb-lib";
import { success, failure } from "../../libs/response-lib";
export async function main(event, context) {
const params = {
TableName: "brands",
KeyConditionExpression: "brandId = :brandId",
ExpressionAttributeValues: {
":brandId": ''
}
};
try {
const result = await dynamoDbLib.call("query", params);
return success(result.Items);
} catch (e) {
console.log(e);
return failure({ status: false });
}
}
Run Code Online (Sandbox Code Playgroud)
id 采用 uuid 格式,当从我的节点 js 插入时,使用以下命令导入:
import uuid from "uuid";
Run Code Online (Sandbox Code Playgroud)
然后插入到表中,如下所示:
brandId: uuid.v1()
Run Code Online (Sandbox Code Playgroud)
现在,当我查询表中的项目时,当且仅当我在表达式属性值中硬编码记录的 uuid(必须指定 KeyConditions 或 KeyConditionExpression 参数)时,我只能获取一条记录。所以我想到添加一个正则表达式来匹配所有的uuid,我的正则表达式是从网络上的一些解决方案复制的,但它不起作用,如下所示:
[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}
Run Code Online (Sandbox Code Playgroud)
和
\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b
Run Code Online (Sandbox Code Playgroud)
我尝试过其他示例,但没有一个起作用,添加正则表达式来获取所有项目是否正确,如果是,正确的正则表达式是什么?
and*_*amm -3
使用 Scan 操作获取表中的所有项目。
来自AWS 开发人员指南:
scan 方法读取表中的每一项并返回表中的所有数据。您可以提供可选的filter_expression,以便仅返回与您的条件匹配的项目。但是,仅在扫描整个表后才应用过滤器。