У меня много проблем со сканированием и последующим использованием FilterExpression для фильтрации по одному значению. Я посмотрел на документацию API и другие вопросы переполнения стека, но все еще не могу понять, правильный синтаксис для этого. Так как я также впервые использую реагировать и JavaScript, это может быть проблемой с моим пониманием этого.
Ниже приведено то, что я пытаюсь использовать в качестве выражения фильтра. uploadId - это имя поля в таблице базы данных Dynamo, а event.pathParameters.id - это переменная, которая должна соответствовать значению, по которому фильтруются результаты сканирования.
FilterExpression: "uploadId = :event.pathParameters.id"
Ниже приведен код в контексте:
import * as dynamoDbLib from "./libs/dynamodb-lib";
import { success, failure } from "./libs/response-lib";
export async function main(event, context, callback) {
const params = {
TableName: "uploads",
FilterExpression: "uploadId = :event.pathParameters.id"
};
try {
const result = await dynamoDbLib.call("scan", params);
if (result.Item) {
// Return the retrieved item
callback(null, success(result.Item));
} else {
callback(null, failure({ status: false, error: "Item not found." }));
}
} catch (e) {
callback(null, failure({ status: false }));
}
}
Спасибо за вашу помощь!