2017-02-23 437 views
0

Если у нас есть элементы в таблице со следующей структурой.Создание индексации LSI с использованием первичного ключа в качестве ключа partion и одного атрибута из документа DynamoDb

В DynamoDb мы можем использовать «a» в качестве ключа partion и «aa» в качестве ключа сортировки для запросов?

{ 
    "a" : "", 
    "b" : "", 
    "c" : "", 
    "d" : [ { 
     "aa" : "", 
     "bb" : "" 
     }, 
     { 
     "aa" : "", 
     "bb" : "" 
     } 
    ] 
} 

ответ

1

Да, вы можете использовать «a» в качестве ключа раздела.

Однако вы не можете использовать «aa» в качестве клавиши SORT. Ключ сортировки должен быть типа Scalar (String, Number, Boolean).

Ключи LSI/GSI не могут быть из типа данных документа (списка, карты и набора).

+0

Таким образом, любой вероятный способ запроса конкретного элемента в списке элементов документа? –

+0

Да, вы можете использовать API запросов только при наличии ключа раздела. Если вы знаете ключ раздела, вы можете включить дополнительные критерии фильтра в FilterExpression, включая список элементов документа. Если вы не знаете ключ раздела, вы можете использовать Scan API с выражениями фильтра. Тем не менее, это полное сканирование таблицы, и это дорогостоящая операция. – notionquest