簡體   English   中英

如何使用 Node.js 從 DynamoDB 表中檢索所有項目?

[英]How to retrieve all items from a DynamoDB table with Node.js?

我有以下節點 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 時(必須指定 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}

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

我已經嘗試了其他示例,但它們都不起作用,添加正則表達式來獲取所有項目是否正確,如果是這樣,正確的正則表達式是什么?

使用 Scan 操作獲取表中的所有項目。

來自AWS 開發人員指南

scan 方法讀取表中的每一項並返回表中的所有數據。 您可以提供一個可選的 filter_expression,以便只返回與您的條件匹配的項目。 但是,只有在掃描了整個表之后才應用過濾器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM