У меня есть таблица корзины AWS DynamoDb со следующей структурой элементов -
{
"cart_id": "5e4d0f9f-f08c-45ae-986a-f1b5ac7b7c13",
"user_id": 1234,
"type": "OTHER",
"currency": "INR",
"created_date": 132432423,
"expiry": 132432425,
"total_amount": 90000,
"total_quantity": 2,
"items": [
{
"amount": 90000,
"category": "Laptops",
"name": "Apple MacBook Pro",
"quantity": 1
}
]
}
-
{
"cart_id": "12340f9f-f08c-45ae-986a-f1b5ac7b1234",
"user_id": 1234,
"type": "SPECIAL",
"currency": "INR",
"created_date": 132432423,
"expiry": 132432425,
"total_amount": 1000,
"total_quantity": 2,
"items": [
{
"amount": 1000,
"category": "Special",
"name": "Special Item",
"quantity": 1
}
]
}
Таблица будет иметь cart_id
как первичный ключ,
user_id
как индекс или GSI,
type
как индекс или GSI.
Я хочу иметь возможность запросить таблицу корзины,
чтобы найти элементы, которые имеют user_id = 1234 AND type != "SPECIAL"
.
Я не знаю, означает ли это для запроса -
--key-condition-expression "user_id = 1234 AND type != 'SPECIAL'"
Я понимаючто таблицу AWS DynamoDb нельзя запросить с использованием нескольких индексов одновременно ,
Я сталкивался со следующим вопросом, у него аналогичный вариант использования, и в ответе рекомендуется создать составной ключ,
Запросы с использованием нескольких локальных вторичных индексов Dynamodb
Означает ли это, что при добавлении нового элемента в таблицу,
мне потребуется сохранить другой столбец, такой как user_id_type
,
со значением 1234SPECIAL
и созданием индекса / GSI для user_id_type
?
Пример структуры изделия -
{
"cart_id": "5e4d0f9f-f08c-45ae-986a-f1b5ac7b7c13",
"user_id": 1234,
"type": "OTHER",
"user_id_type" : "1234OTHER",
"currency": "INR",
"created_date": 132432423,
"expiry": 132432425,
"total_amount": 90000,
"total_quantity": 2,
"items": [
{
"amount": 90000,
"category": "Laptops",
"name": "Apple MacBook Pro",
"quantity": 1
}
]
}
Ссылки -
1. Запросы с несколькими локальными вторичными индексами Dynamodb
2. Есть ли способ запроса нескольких хэшейключи в DynamoDB?