2017-07-26 8 views
0

現在、mongodbを使用しており、dynamodbに移行する予定です。 私はANDとORを意味する要素を見つけるかなり複雑なアルゴリズムを持っています。ダイナモスキャンでorを使用する

ここに(簡略化した)例があります。 ユーザーによる検索エンジン。 ユーザーにlastNameとfirstNameの2つのフィールドがあるとします。

ユーザー検索「ハリー・ポー」

検索エンジンは、検索する必要があります

$or : [{$and : [{lastName : "harry"}, {firstName: "po"}]}, {$and : [{lastName : "Po"}, {firstName: "harry"}]}] 

を我々は姓を持つような他のものを想像することができる「ハリーPO」とノーファーストネームなど

付きmongoDB私はJavaラッパーSpring DataMongoDBを使用しています。 は、しかし、私は私は私の条件間でORを行うことができますように見えますHowver私はこのページ https://stackoverflow.com/questions/24275243/writing-dynamodb-or-condition-query#=

を見つけDynamoDBの

でそれを行うための方法を見つけることができないのです。 私には何かがありますか?あなたのような演算子で式を結合ANDとOR演算子を含めることができますスキャン条件を指定することができますDynamoDBのでは

+0

あなたは「私の要素間のORしかできません」と書いています。 「自分の要素」とはどういう意味ですか? –

+0

申し訳ありませんが、私は条件 – Geoffrey

答えて

0

:> =、=、<などが

ここ

DynamoDBのドキュメントはそれについて言っているされているもの:

ComparisonOperator - 属性を評価するコンパレータです。 の例では、等しい、より大きい、より小さいなどです。次の 比較演算子を使用できます。 NE | LE | LT | GE | GT | NOT_NULL | NULL | | NOT_CONTAINS | BEGINS_WITH | IN |

BETWEENあなたはComparisonOpertorsを組み合わせること ConditionalOperatorを使用することができます。

期待、QueryFilterまたはScanFilterマップの状況に適用する論理演算子:

と - 条件のすべての場合trueに評価すると、マップ全体 がtrueに評価されます。

OR条件の少なくとも1つが と評価される場合、マップ全体が真と評価されます。

ConditionalOperatorを省略すると、ANDがデフォルトになります。

関連する問題