以 '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()
我正在尝试使用一些过滤器表达式执行 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()