I have a DynamoDb table called Users. I am trying to execute a very simple query where the user's last name is like 'John*' (Johnson, Johnston, Johnny, etc), however I cannot find a very straight forward example.
Below is a snippet of my code:
public class DynamoDbUsersTest extends ApplicationTest {
@Autowired
private DynamoDb dynamoDb;
private Table usersTable = dynamoDb.getTable("Users");
public void getUsersByLastNameContainsTest(){
//userTable.contains(user.getLastName()); // No such method.
userTable.scan(new ScanFilter("lastName").contains("John");
...
}
}
Can someone please point me in the right direction? I tried looking at the Query Object, but I'm not sure it'll do what I need it to.
Scan Object to make this work, however it does a full table scan with each query.
Has anyone found a better/faster way of searching with partial values?
Would the following be faster?
public class DynamoDbUsersTest extends ApplicationTest {
@Autowired
private DynamoDb dynamoDb;
private Table usersTable = dynamoDb.getTable("Users");
public void getUsersByLastNameContainsTest(){
userTable.query(new QueryFilter("lastName").contains("John");
...
}
}