How to use “IN” statement in FilterExpression using array - dynamodb

前端 未结 6 2054
猫巷女王i
猫巷女王i 2020-12-08 15:58

Checked AWS document but did not find any working example.

Here is my attempt

var params = {
            TableName: \"User\",
            IndexName:\         


        
6条回答
  •  萌比男神i
    2020-12-08 16:21

    The Python3 version:

    def get_filter_for_in_clause(column_name, in_values, column_type="S"):
        expressions = []
        for i in range(len(in_values)):
            expressions.append(f':temp{i}')
        filter_expression = f'{column_name} IN ({", ".join(expressions)})'
    
        expression_attribute_values = {}
        for index, expression in enumerate(expressions):
            expression_attribute_values[expression] = {column_type: in_values[index]}
    
        return filter_expression, expression_attribute_values
    

    Usage:

    column = 'testcolumn'
    inputs = ['testvalue1', 'testvalue2', 'testvalue3']
    filter_expression, expression_attribute_values = get_filter_for_in_clause(column, inputs)
    

    Result:

    # filter_expression = 'testcolumn IN (:temp0, :temp1, :temp2)'
    # expression_attribute_values = {':temp0': {'S': 'testvalue1'}, ':temp1': {'S': 'testvalue2'}, ':temp2': {'S': 'testvalue3'}}
    

提交回复
热议问题