In addition to querying by the model type (or `Predicates.ALL`), a record with a custom primary key can be queried several ways.
With the value of the primary key:
```js
const book = await DataStore.query(Book, '12345');
```
With a predicate:
```js
const books = await DataStore.query(Book, b =>
t.isbn.eq('12345')
);
```
```js
const books = await DataStore.query(Book, b => b.and(
b => [
b.isbn.eq('12345'),
b.title.eq('My Book')
])
);
```
With an object literal:
```js
const book = await DataStore.query(Book, {
isbn: '12345'
});
```
```js
// Both keys are required for composite keys
const book = await DataStore.query(Book, {
isbn: '12345',
title: 'My Book',
});
```