2014-12-18 4 views
0

Я пытаюсь использовать AWS API для DynamoDB с Java. Для некоторых сканирующих операций, я хочу использовать фильтры, как это:Как оценить это выражение с помощью Java AWS SDK?

(NAME BEGINS_WITH "Джо") AND ((ЗАРПЛАТА < 100) ИЛИ (AGE> 60))

что, комбинируя и гнездования И-/OR булевых операторов. Тем не менее, я только нашел, как передать, с каким оператором оценить список ScanFilters, но не как объединить их для построения более сложного выражения. Итак, как это сделать? В идеале это было бы примерно так:

ScanSpec scanSpec = new ScanSpec() 
    .withMyNiceExpression("(NAME BEGINS_WITH \"Joe\") AND ((SALARY < 100) OR (AGE > 60))"); 

Спасибо.

P.S .: модель стола неизвестна мне и динамична. Вот почему я должен использовать API таким образом.

ответ

2

Если вы посмотрите на doc for Table scan, вы должны увидеть пример в разделе «Указание дополнительных параметров».

Карта expressionAttributeValues может занять много атрибутов, как вы хотите, и вы можете создать условия, такие как (att1>: знач1 И (ATT2 <: val2 ИЛИ ATT2>: val3))

+0

Вы абсолютно правы. Большое спасибо. Можно ли использовать внутри выражения фильтра BEGINS_WITH и других? – ale64bit

+0

starts_with доступен: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html –

Смежные вопросы