Как получить все элементы из таблицы DynamoDB с помощью 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.info(e);
     return failure({ status: false });
  }
}

Идентификатор находится в формате 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

и я пробовал другие примеры, но ни один из них не работал, правильно ли добавлять регулярное выражение для получения всех элементов, и если да, то какое регулярное выражение для него правильное?

Вы решили проблему?

Abdullah Khan 07.08.2020 17:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
6
1
4 483
1

Ответы 1

Используйте операцию сканирования, чтобы получить все элементы в таблице.

Из Руководство разработчика AWS:

The scan method reads every item in the table and returns all the data in the table. You can provide an optional filter_expression, so that only the items matching your criteria are returned. However, the filter is applied only after the entire table has been scanned.

Зачем использовать операции сканирования?

NoorJafri 29.03.2020 11:36

Операции сканирования будут последним средством из-за их стоимости и производительности, обратитесь к docs.aws.amazon.com/amazondynamodb/latest/developerguide/….

akrsmv 25.05.2020 14:08

В частности, вопрос заключается в попытке получить все элементы из таблицы. Сканирование - правильный способ сделать это....

andrhamm 02.09.2020 15:10

Другие вопросы по теме