Как запросить / отсканировать таблицу в DynamoDB, используя AND и OR в одном выражении, используя python? - PullRequest
0 голосов
/ 17 февраля 2020

Я хочу запросить таблицу на DynamoDB и использовать python. Суть этого запроса в том, что я хочу использовать условия AND и OR в одном запросе. Я хочу, чтобы запрос извлекал значения из одного столбца, когда значение равно B или C.

У меня есть следующая таблица:

domain          validation_A        validation_B        validation_C
---------       -----------------   ---------------     ---------------
drene.com       pass                pass                pass
drene.com       pass                true                pass
drene.com       fail                pass                pass

В обычном выражении SQL я буду использовать:

Select * 
from 
    ValidationTable 
where 
    domain = 'drene.com' and 
    validation_A = 'pass' and 
    (validation_B = 'pass' or validation_B = 'true') 

Я не знаю, как это сделать в DynamoDB / Pythom

Я попробовал следующее:

response = table.scan(
                 IndexName="Date-index",
                 FilterExpression=Key('domain').eq('drene.com') & Attr('validation_A').eq('pass') & (Attr('validation_B').eq('pass') || Attr('validation_B').eq('true'))

)

Но это не работает

Мне нужно, чтобы запрос принес мне первые 2 строки .

1 Ответ

0 голосов
/ 17 февраля 2020

Используйте | вместо ||

response = table.scan(
                 IndexName="Date-index",
                 FilterExpression=Key('domain').eq('drene.com') & Attr('validation_A').eq('pass') & (Attr('validation_B').eq('pass') | Attr('validation_B').eq('true'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...