Я стремлюсь оптимизировать операции DynamodB, то есть удаление сканирования и использовать запросы для быстрого извлечения данных.
Данные таблицы:
itemId itemName itemOwners
hash1 abc [user1, user2]
hash2 abcd [user1, user3]
hash3 xyz [user2, user3]
Я должен выполнить поиск по элементу, используя элемент. имя. Прямо сейчас мы сканируем всю таблицу.
let getItems = {
TableName: ItemsTable,
FilterExpression: 'contains (#itemName, :searchValue)',
ExpressionAttributeNames: { '#itemName': 'itemName' },
ExpressionAttributeValues: { ':searchValue': searchValue },
};
let items = await docClient.scan(getItems).promise();
Затем мы фильтруем результат элементов, если itemOwners содержит идентификатор пользователя для пользователя, выполняющего поиск.
Я хотел бы знать, есть ли лучший способ сделать этот поисковый запрос с DynamodB?