2017-01-27 16 views
0

DynamoDBDocumentのコレクション内の属性に基づいてフィルタリング/スキャンが可能かどうかを知りたいと思います。DynamoDb - DynamoDBDocumentコレクション内の属性に基づいたフィルタリングまたはスキャン

@DynamoDBTable(tableName = "Orders") 
public class Order { 
    @DynamoDBHashKey 
    @DynamoDBAutoGeneratedKey 
    private String id; 

    @DynamoDBAttribute 
    @DynamoDBTypeConverted(converter = LocalDateTimeConverter.class) 
    private LocalDateTime orderDate; 

    @DynamoDBAttribute 
    private Address shipTo; 

    @DynamoDBAttribute 
    private Address billTo; 

    @DynamoDBAttribute 
    private List<OrderItem> items; 
} 

@DynamoDBDocument 
public class Address { 
    private String name; 
    private String street; 
    private String city; 
    private String state; 
    private String zip; 
} 

@DynamoDBDocument 
public class OrderItem { 
    private String product; 
    private int qty; 
    private double itemCost; 
} 

製品が「ウィジェット」である1つ以上のアイテムを持つすべてのオーダーを検索したいとします。私は答えがノーだと信じています。リレーショナルDBを使用すると、以下のようになります。 注文o、OrderItems i o.id = i.idとi.product = "widgets"

オーダーアイテムを自分で設定する方がよいでしょうかテーブル内にorderId属性があり、次に商品に基づいて注文アイテムを照会し、注文IDに基づいて注文を取得しますか?

答えて

0

マップのキーがproduct@DynamoDBAttribute itemsのリストではなくマップを使用する場合は、フィルタ式attribute_exists(items.widgets)を使用して下から選択できます。

関連する問題