У меня есть следующий код узла 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
и я пробовал другие примеры, но ни один из них не работал, правильно ли добавлять регулярное выражение для получения всех элементов, и если да, то какое регулярное выражение для него правильное?





Используйте операцию сканирования, чтобы получить все элементы в таблице.
Из Руководство разработчика 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.
Зачем использовать операции сканирования?
Операции сканирования будут последним средством из-за их стоимости и производительности, обратитесь к docs.aws.amazon.com/amazondynamodb/latest/developerguide/….
В частности, вопрос заключается в попытке получить все элементы из таблицы. Сканирование - правильный способ сделать это....
Вы решили проблему?