web-dev-qa-db-fra.com

Comment avoir FilterExpression avec plusieurs conditions dans dynamodb

J'essaie de faire un scan de table sur dynamodb Voici le code qui est en javascript

var params = {
    TableName: 'Contacts',
    FilterExpression: 'begins_with(CustomerName,:value)OR begins_with(CustomerName,:val) ', 
    ExpressionAttributeValues: { 
        ':value': {'S':'S'},
        ':val':{'S':'E'},
      },
    Select: 'ALL_ATTRIBUTES', 
 };

 dynamodb.scan(params, function(err, data) {
    if (err) ppJson(err); // an error occurred
    else ppJson(data); // successful response
});

Mais je ne pouvais pas essayer la même chose avec Botot3.

Ci-dessous, ce que j'ai pu réaliser jusqu'à présent

response = table.scan(
                  Select= 'ALL_ATTRIBUTES',
                  FilterExpression=Attr('CustomerName').begins_with("S") 
                  )

Je ne comprenais pas comment ajouter la condition OR. Si j'ajoute, cela montre une erreur 

6
JithPS

Pour AND '&' est utilisé et pour OR '|' est utilisé 

  response = table.scan(
              Select= 'ALL_ATTRIBUTES',
              FilterExpression=Attr('CustomerName').begins_with("S") | Attr('CustomerName').begins_with("S") 
              )
14
JithPS

Vous pouvez créer une chaîne compare = ["a = b", "c begin_with val '], puis les joindre avec' et '.join (comparer)

en créant pour vous l'expression de filtre 'a = b et c begin_with val'

0
Oirad