必须指定KeyConditions或KeyConditionExpression参数Nodejs和DynamoDB

问题描述 投票:0回答:1

我有以下节点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 });
  }
}

id是uuid格式,当从我的节点js插入时,使用以下方法导入:

import uuid from "uuid";

然后插入到表格中:

brandId: uuid.v1()

现在当我查询表中的项时,我只能得到一条记录,当且仅当我在表达式属性值中对记录的uuid进行硬编码时,所以我考虑添加一个正则表达式来匹配所有的uuids,我的常规表达式是从网络上的某些解决方案中复制的,但它不起作用,如下所示:

[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}

\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b

我已经尝试了其他的例子但是没有它们有效,是否正确添加正则表达式以获取所有项目,如果是这样,它的正确正则表达式是什么?

node.js regex attributes amazon-dynamodb expression
1个回答
0
投票

使用“扫描”操作获取表格中的所有项目。

© www.soinside.com 2019 - 2024. All rights reserved.