2016-05-15 46 views
1

我想從數字列表中過濾數據。我已經使用掃描按列表過濾(即使用NS)。我在下面的帖子中跟着解決方案。我既沒有得到任何錯誤,也沒有得到結果集中的值。Dynamodb - 從數字列表中掃描並過濾數據,但不在過濾條件中包含關鍵屬性

DynamoDB java filter list - example

DynamoDBScanExpression scanExpression = new DynamoDBScanExpression() 
      .withFilterExpression("Comments.UserIds IN (:val1)") 
      .withExpressionAttributeValues(eav); 

評論是一個複雜的對象,其具有列出的userIds(類型:整數)。我想通過userIds過濾數據。我沒有所有的用戶ID。如果列表包含五個用戶標識,我會有一個或兩個用戶標識。

有沒有一種方法可以在AWS SDK-Java中實現這個要求?

回答

1

關鍵字「包含」解決了這個問題。現在,我可以通過列表中少數值來過濾數據。

eav.put(":val1", new AttributeValue().withN(userId)); 
DynamoDBScanExpression scanExpression = new DynamoDBScanExpression() 
     .withFilterExpression("contains (Comments.UserIds, :val1)") 
     .withExpressionAttributeValues(eav);