Dynamodbでテーブルスキャンを実行しようとしています。以下は、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
});
しかし、botot3を使用して同じことを試すことはできませんでした。
以下は私がこれまでに達成できたことです
response = table.scan(
Select= 'ALL_ATTRIBUTES',
FilterExpression=Attr('CustomerName').begins_with("S")
)
OR条件を追加する方法を理解できませんでした。追加すると、エラーが表示されます
ANDの場合「&」が使用され、OR '|'が使用される場合
response = table.scan(
Select= 'ALL_ATTRIBUTES',
FilterExpression=Attr('CustomerName').begins_with("S") | Attr('CustomerName').begins_with("S")
)
文字列compare = ["a = b"、 "c begin_with val ']を作成して、'および '.join(compare)で結合できます。
フィルター式 'a = bおよびc begin_with val'を作成します