在 AWS DynamoDB 中,嵌套数组的筛选可以通过使用表达式来实现。可以使用 contains() 函数,该函数可以检查一个值是否存在于嵌套数组中。下面是使用表达式的示例代码:
import boto3
# 创建DynamoDB客户端
dynamodb = boto3.resource('dynamodb')
# 获取表对象
table = dynamodb.Table('my-table')
# 使用表达式筛选嵌套数组
response = table.scan(
FilterExpression='contains(#nestedAttr.#fieldName, :value)',
ExpressionAttributeNames={
'#nestedAttr': 'nestedAttr',
'#fieldName': 'fieldName'
},
ExpressionAttributeValues={
':value': 'my-value'
}
)
items = response['Items']
在这个示例中,先调用 DynamoDB 资源的 Table() 方法获取表对象,然后通过调用 scan() 方法来执行查询。使用 FilterExpression 参数来指定筛选条件,这里使用了 contains() 函数来检查 ‘my-value’ 是否存在于嵌套数组中。然后使用 ExpressionAttributeNames 和 ExpressionAttributeValues 参数来指定表达式中使用到的变量和值。最后通过调用 response['Items'] 来获取查询结果。