2015-08-26 17 views
8

Czy operacja skanowania Amazon DynamoDB umożliwia zapytanie o zagnieżdżone atrybuty typu Array lub Object? Na przykład,Obsługa zapytań zagnieżdżonych DynamoDB

{ 
    Id: 206, 
    Title: "20-Bicycle 206", 
    Description: "206 description", 
    RelatedItems: [ 
     341, 
     472, 
     649 
    ], 
    Pictures: { 
     FrontView: "123", 
     RearView: "456", 
     SideView: "789" 
    } 
} 

Mogę zapytać o RelatedItems[2] lub Pictures.RearView atrybutów?

Odpowiedz

12

Tak, można użyć wartości Filter Expression, która jest podobna do wyrażenia warunku. Sekcja, która mówi o the functions, której można używać w tego typu wyrażeniach, wymienia następujące:

"W przypadku atrybutu zagnieżdżonego należy podać pełną ścieżkę, aby uzyskać więcej informacji, patrz: Document Paths."

Odwołanie Document Paths zawiera przykłady jak odwoływać się do zagnieżdżonych atrybutów w DynamoDB data types, takich jak Lista (nazwa, do której dzwoni tablica) i Mapa (to, co wywołujesz obiekt). Sprawdzeniu, że odniesienie do przykładów, w jaki sposób to zrobić:

  • mylist [0]
  • AnotherList [12]
  • ThisList [5] [11]
  • MyMap.nestedField
  • MyMap. nestedField.deeplyNestedField
1

Należy pamiętać, że w DyanomoDB query i scan są zupełnie inne (scan jest znacznie c operacja ostlier). Tak więc, podczas gdy można filtrować na obu, jak wskazano przez @ coffeeplease; można tylko zapytanie/indeksować:

Kluczowy schemat indeksu. Każdy atrybut w schemacie klucza indeksu musi być atrybutem najwyższego poziomu typu String, Number lub Binary. Inne typy danych, w tym dokumenty i zestawy, są niedozwolone (ref).