Запуск Node.js серверного бэкэнда через AWS.
Основная цель: отфильтровать и перечислить все ЛОКАЛЬНЫЕ задания (элементы таблицы), которые включали доступные службы и почтовые индексы, предоставленные фильтру.
Я передаю несколько почтовых индексов коды и несколько доступных служб.
data.radius
будет массивом почтовых индексов = примерно так: [ '93901', '93902', '93905', '93906', '93907', '93912', '93933', '93942', '93944', '93950', '95377', '95378', '95385', '95387', '95391' ]
data.availableServices
также будет массивом = что-то вроде this ['Snow removal', 'Ice Removal', 'Salting', 'Same Day Response']
Я пытаюсь выполнить вызов API, который возвращает только элементы, которые соответствуют zipCode
из массива почтовых индексов, предоставленных data.radius
, а packageSelected
имеет совпадение предоставляется массив data.availableServices
.
API CALL
import * as dynamoDbLib from "./libs/dynamodb-lib";
import { success, failure } from "./libs/response-lib";
export async function main(event, context) {
const data = JSON.parse(event.body);
const params = {
TableName: "jobs",
FilterExpression: "zipCode = :radius, packageSelected = :availableServices",
ExpressionAttributeValues: {
":radius": data.radius,
":availableServices": data.availableServices
}
};
try {
const result = await dynamoDbLib.call("query", params);
// Return the matching list of items in response body
return success(result.Items);
} catch (e) {
return failure({ status: false });
}
Нужно ли сначала сопоставить массив почтовых индексов и доступных служб чтобы это работало?
Должен ли я использовать операторы сравнения? https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.QueryFilter.html
Требуется ли значение ключа сортировки или ключ раздела для запроса и фильтрации? (в таблице есть ключ сортировки и ключ раздела, но я бы не хотел использовать их в этом вызове)
Я не уверен на 100% в том, как go узнать об этом, так что если кто-нибудь сможет указать мне правую направление, которое было бы замечательно и высоко ценится!