Amazon DynamoDB扫描操作是否允许您查询 Array
或 Object
类型的嵌套属性?例如,
{
Id: 206,
Title: "20-Bicycle 206",
Description: "206 description",
RelatedItems: [
341,
472,
649
],
Pictures: {
FrontView: "123",
RearView: "456",
SideView: "789"
}
}
我可以查询 RelatedItems[2]
或 Pictures.RearView
属性吗?
4 回答
是的,您可以使用Filter Expression,这就像条件表达式一样 . 在这些类型的表达式中可以使用的关于the functions的部分提到了以下内容:
“对于嵌套属性,您必须提供其完整路径;有关更多信息,请参阅Document Paths . ”
Document Paths引用提供了有关如何在_606087中引用嵌套属性的示例,例如List(您调用的是数组)和Map(您称之为对象) . 查看该参考以获取有关如何执行此操作的示例:
MyList [0]
AnotherList [12]
ThisList [5] [11]
MyMap.nestedField
MyMap.nestedField.deeplyNestedField
请注意,在DyanomoDB中
query
和scan
是完全不同的(scan
是一个非常昂贵的操作) . 因此,虽然你可以按照@coffeeplease的指示对两者进行过滤;你只能查询/索引:是的,您可以使用扫描或查询查询类型为array或object的嵌套属性 .
Python boto3参考:https://boto3.amazonaws.com/v1/documentation/api/latest/guide/dynamodb.html#querying-and-scanning
示例:假设您要查找
RearView" > 500
和RelatedItems" > 200
的第二项的记录,您可以执行以下操作:是的,您可以通过传递列表或值 .