2015-08-26 166 views
8

Amazon DynamoDB掃描操作是否允許您查詢ArrayObject類型的嵌套屬性?例如,DynamoDB嵌套查詢支持

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

能否在RelatedItems[2]Pictures.RearView屬性查詢?

回答

12

是的,你可以使用Filter Expression,就像條件表達式一樣。有關the functions的部分,您可以在這些類型的表達式中使用以下內容:

「對於嵌套屬性,您必須提供其完整路徑;有關更多信息,請參閱Document Paths

Document Paths引用有關於如何引用像List(你正在調用一個數組)和Map(你正在調用一個對象)的DynamoDB data types嵌套屬性的例子。檢查出參考關於如何這樣做的示例:

  • MYLIST [0]
  • AnotherList [12]
  • ThisList [5] [11]
  • MyMap.nestedField
  • MyMap中。 nestedField.deeplyNestedField
1

請注意,在DyanomoDB queryscan有很大的不同(scan是一個非常ç ostlier操作)。所以雖然你可以像@coffeeplease指出的那樣過濾兩者;您只能查詢/索引:

索引的關鍵模式。索引鍵架構中的每個屬性都必須是String,Number或Binary類型的頂級屬性。其他數據類型,包括文檔和集合,是不允許的(ref)。