在dynamodb扫描中使用或和算法

时间:2017-07-26 15:27:36

标签: amazon-dynamodb

我目前正在使用mongodb并计划迁移到dynamodb。 我有一个非常复杂的算法来查找暗示AND和OR的元素。

这是一个(简化)示例。 通过用户搜索引擎。 让我们想象用户有两个字段:lastName和firstName。

用户搜索" Harry Po"

搜索引擎应搜索:

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

我们可以想象其他的东西,如姓氏和#34;哈里波"没有名字等

使用mongoDB我使用java包装器Spring DataMongoDB,它允许我做我想做的所有事情。 但是我无法找到使用dynamodb

的方法

我找到了这个页面 https://stackoverflow.com/questions/24275243/writing-dynamodb-or-condition-query#=

看起来我只能在我的条件之间进行OR。 有什么我想念的吗?

1 个答案:

答案 0 :(得分:0)

在DynamoDB中,您可以指定可以包含AND和OR运算符的扫描条件,这些运算符将表达式与运算符组合在一起,例如:> =,=,<等等。

以下是DynamoDB文档所说的内容:

  

ComparisonOperator - 用于评估属性的比较器。对于   例如,等于,大于,小于等。以下   比较运算符可用:EQ | NE | LE | LT | GE | GT |   NOT_NULL | NULL |包含| NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN

您可以使用ConditionalOperator组合ComparisonOpertors:

应用于Expected,QueryFilter或ScanFilter地图中条件的逻辑运算符:

  

AND - 如果所有条件都评估为true,那么整个地图   评估为真。

     

或 - 如果至少有一个条件评估为   如果为true,则整个地图的计算结果为true。

     

如果省略ConditionalOperator,则AND是默认值。