query nodejs filterexpression example dynamodb consultas amazon-web-services amazon-dynamodb boto3

amazon-web-services - nodejs - lambda dynamodb python



¿Cómo consultamos un índice secundario de dynamodb utilizando boto3? (3)

Añadiendo la técnica actualizada:

import boto3 from boto3.dynamodb.conditions import Key, Attr dynamodb = boto3.resource( ''dynamodb'', region_name=''localhost'', endpoint_url=''http://localhost:8000'' ) table = dynamodb.Table(''userTable'') attributes = table.query( IndexName=''UserName'', KeyConditionExpression=Key(''username'').eq(''jdoe'') ) if ''Items'' in attributes and len(attributes[''Items'']) == 1: attributes = attributes[''Items''][0]

¿Hay alguna forma de consultar el global secondary index de dynamodb usando boto3 ? No encuentro ningún tutorial o recurso en línea.


Para cualquiera que use el cliente boto3, el siguiente ejemplo debería funcionar:

import boto3 # for production client = boto3.client(''dynamodb'') # for local development if running local dynamodb server client = boto3.client( ''dynamodb'', region_name=''localhost'', endpoint_url=''http://localhost:8000'' ) resp = client.query( TableName=''UsersTabe'', IndexName=''MySecondaryIndexName'', ExpressionAttributeValues={ '':v1'': { ''S'': ''[email protected]'', }, }, KeyConditionExpression=''emailField = :v1'', ) # will always return list items = resp.get(''Items'') first_item = items[0]


IndexName proporcionar un parámetro IndexName para la función de query .

Este es el nombre del índice , que suele ser diferente del nombre del atributo del índice (el nombre del índice tiene un sufijo de -index por defecto, aunque puede cambiarlo durante la creación de la tabla). Por ejemplo, si su atributo de índice se llama video_id , su nombre de índice es probablemente video_id-index .

import boto3 from boto3.dynamodb.conditions import Key dynamodb = boto3.resource(''dynamodb'') table = dynamodb.Table(''videos'') video_id = 25 response = table.query( IndexName=''video_id-index'', KeyConditionExpression=Key(''video_id'').eq(video_id) )

Para verificar el nombre del índice , vaya a la pestaña Indexes de la tabla en la interfaz web de AWS. Necesitará un valor de la columna Name .