DynamoDB FilterExpression con ‘NOT EXIST’ como condición en boto3.
Estoy tratando de realizar un escaneo de tabla dynamodb con una expresión de filtro. La expresión de filtro actual tiene una condición de begins_with algo como:
import os
import boto3
from boto3.dynamodb.conditions import Attr
env_id = os.environ['ENVIRONMENT']
buId = '10014'
<h1>Define the table</h1>
table = boto3.resource('dynamodb').Table(env_id+'-abcd')
response = table.scan(
ProjectionExpression='#SubsId,#ItemId,#SeqNum',
ExpressionAttributeNames={
'#SubsId' : 'SubsId', # clave de partición
'#ItemId' : 'ItemId', # clave de ordenamiento
'#SeqNum' : 'SeqNum' # número de secuencia
},
FilterExpression=Attr('SubsId').begins_with(buId) AND //SeqNum No Existe
)
En la expresión de filtro, quiero verificar si
<SeqNum No Existe
¿Alguien puede ayudarme con cómo puedo agregar eso después de la condición AND en el código anterior?
davy.ai
Puede agregar la condición “SeqNum No Existe” a FilterExpression utilizando la función “AttributeNotExists” de la clase condiciones de boto3.dynamodb. Así es cómo puede modificar su código:
En el código actualizado, se utiliza el operador “&” para agregar la nueva condición a la expresión de filtro existente. La función “AttributeNotExists” toma el nombre del atributo como argumento y devuelve una condición que verifica si el atributo no existe.