以 'NOT EXIST' 作为条件的 DynamoDB FilterExpression boto3

DynamoDB FilterExpression with 'NOT EXIST' as a condition boto3

我正在尝试使用一些过滤器表达式执行 dynamodb table 扫描。当前过滤器表达式的条件为 begins_with 类似于:

import os
import boto3
from boto3.dynamodb.conditions import Attr

env_id = os.environ['ENVIRONMENT']
buId   = '10014'

# Define the table
table = boto3.resource('dynamodb').Table(env_id+'-abcd')

response = table.scan(
    ProjectionExpression='#SubsId,#ItemId,#SeqNum',
    ExpressionAttributeNames={
        '#SubsId' : 'SubsId', # partition key
        '#ItemId' : 'ItemId', # sort key
        '#SeqNum' : 'SeqNum'  # sequence number
    },
    FilterExpression=Attr('SubsId').begins_with(buId) AND //SeqNum Not Exists
)

在 FilterExpression 中我想检查是否

SeqNum Not Exists

有人可以帮助我如何在上述代码的 AND 条件之后添加它吗?

您可以对 AND 和“|”使用“&”对于 OR (doc)。您的过滤器表达式将如下所示:

FilterExpression=Attr('SubsId').begins_with(buId) & Attr('SeqNum').not_exists()

参考:Attr(name).not_exists()