2015-08-26 6 views
8

L'opération d'analyse Amazon DynamoDB vous permet-elle d'interroger les attributs imbriqués de type Array ou Object? Par exemple,Prise en charge des requêtes imbriquées DynamoDB

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

Puis-je interroger sur RelatedItems[2] ou Pictures.RearView attributs?

Répondre

12

Oui, vous pouvez utiliser un Filter Expression, qui est exactement comme Condition Expression. La section qui parle de the functions que vous pouvez utiliser dans ces types d'expressions mentionne ce qui suit:

"Pour un attribut imbriqué, vous devez fournir son chemin d'accès complet, pour plus d'informations, voir Document Paths." La référence Document Paths contient des exemples sur comment référencer des attributs imbriqués dans DynamoDB data types comme List (ce que vous appelez un tableau) et Map (ce que vous appelez un objet). Vérifiez que référence des exemples sur la façon de le faire:

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

S'il vous plaît noter que dans DyanomoDB query et scan sont tout à fait différents (scan est beaucoup c opération plus rapide). Donc, alors que vous pouvez filtrer sur les deux comme indiqué par @coffeeplease; vous pouvez uniquement interroger/indexer sur:

Le schéma de clé pour l'index. Chaque attribut du schéma de clé d'index doit être un attribut de niveau supérieur de type String, Number ou Binary. Les autres types de données, y compris les documents et les ensembles, ne sont pas autorisés (ref).