DynamoDb通过Java中的条件查询嵌套数组对象

时间:2019-02-24 04:16:58

标签: java-8 amazon-dynamodb aggregation-framework

我有一个Company对象,其中包含Employee对象。 我想从条件为employee.firstName和employee.lastName匹配用户输入的Company Object中获取Employee对象。

Company.java

@Data  //lombok annotation
@DynamoDBTable(tableName = "Company")
class Company{

 @DynamoDBAttribute(attributeName="Id")  
 String id;

 @DynamoDBAttribute(attributeName="CompanyName")  
 String companyName;

 @DynamoDBAttribute(attributeName="Employees")  
 List<Employee> employees;
}

Employee.java

@DynamoDBDocument
@Data //Lombok annotation
class Employee {

   @DynamoDBAttribute(attributeName="FirstName")  
   String firstName;

   @DynamoDBAttribute(attributeName="LastName")  
   String lastName;

   @DynamoDBAttribute(attributeName="Salary")  
   Integer salary;
}

我搜索了很多地方,看起来DynamoDb不支持对嵌套数组对象的查询。因此,我研究了具有聚合框架和$ filter的Mongodb,该框架有助于获取嵌套数组对象。 但是我怀疑DynamoDb中的FilterExpressions是否可以帮助实现相同的目的。我不确定如何在上述用例中使用它(DynamoDb中的FilterExpression或任何其他方式)。如果任何人都可以在Java中共享DynamoDb的解决方案,那将非常有帮助。谢谢!

P.S。我没有使用spring框架。

编辑:如果dynamoDb中没有解决方案,请分享与mongodb相关的答案。经过大量搜索,我认为mongodb是此类查询的正确选择。

0 个答案:

没有答案