DynamoDB嵌套查询支持

Hir*_*ren 17 amazon-dynamodb

Amazon DynamoDB扫描操作是否允许您查询类型ArrayObject?的嵌套属性?例如,

{
    Id: 206,
    Title: "20-Bicycle 206",
    Description: "206 description",
    RelatedItems: [
        341, 
        472, 
        649
    ],
    Pictures: {
        FrontView: "123", 
        RearView: "456",
        SideView: "789"
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以查询RelatedItems[2]Pictures.RearView属性吗?

rea*_*not 23

是的,您可以使用过滤器表达式,就像条件表达式一样.讨论可以在这些类型的表达式中使用的函数的部分提到了以下内容:

"对于嵌套属性,您必须提供其完整路径;有关更多信息,请参阅文档路径."

文件路径参考对如何引用嵌套属性的例子DynamoDB的数据类型一样名单(你在呼唤什么数组)和地图(你正在调用的对象).查看该参考以获取有关如何执行此操作的示例:

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


Nei*_*eil 7

请注意,在DyanomoDB中query并且scan完全不同(这scan是一个非常昂贵的操作).因此,虽然你可以按照@coffeeplease的指示对两者进行过滤; 你只能查询/索引:

索引的关键模式.索引键架构中的每个属性都必须是String,Number或Binary类型的顶级属性.不允许使用其他数据类型,包括文档和集合(参考).