#node.js #amazon-dynamodb
#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 });
}
}
Идентификатор находится в формате uuid, который при вставке из моего узла js был импортирован с помощью:
import uuid from "uuid";
затем вставляется в таблицу следующим образом:
brandId: uuid.v1()
Теперь, когда я запрашиваю элементы в таблице, я могу получить только одну запись тогда и только тогда, когда я жестко закодировал uuid записи в значении атрибута expression (должен быть указан либо параметр keyconditionsexpression, либо 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
и я пробовал другие примеры, но ни один из них не сработал, правильно ли добавлять регулярное выражение для получения всех элементов, и если да, то какое регулярное выражение для этого подходящее?
Комментарии:
1. Вы решили проблему?
Ответ №1:
Используйте операцию сканирования, чтобы получить все элементы в таблице.
Из руководства разработчика AWS:
Метод сканирования считывает каждый элемент в таблице и возвращает все данные в таблице. Вы можете предоставить необязательное filter_expression, чтобы возвращались только элементы, соответствующие вашим критериям. Однако фильтр применяется только после сканирования всей таблицы.
Комментарии:
1. Зачем использовать операции сканирования?
2. Операции сканирования были бы последним средством из-за их стоимости и производительности, пожалуйста, проконсультируйтесь docs.aws.amazon.com/amazondynamodb/latest/developerguide /…
3. Вопрос конкретно заключается в попытке извлечь все элементы из таблицы. Сканирование — это правильный способ сделать это….