> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bijection.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Interface: RelatedQuery<Entry, TableInfo, Paginated, OrderProperty>

> An immutable, lazy relation selection.

[server](/api/modules/server).RelatedQuery

An immutable, lazy relation selection. The native reader owns membership,
supported index orderings, access and exact continuation.

## Type parameters

| Name | Type |
| :- | :- |
| `Entry` | `Entry` |
| `TableInfo` | extends [`GenericTableInfo`](/api/modules/server#generictableinfo) = [`GenericTableInfo`](/api/modules/server#generictableinfo) |
| `Paginated` | extends `boolean` = `true` |
| `OrderProperty` | extends `string` = `never` |

## Methods

### filter

▸ **filter**(`predicate`): `NavigationResult`\<`Entry`, `Paginated`, `TableInfo`, `OrderProperty`>

#### Parameters

| Name | Type |
| :- | :- |
| `predicate` | (`q`: [`FilterBuilder`](/api/interfaces/server.FilterBuilder)\<`TableInfo`>) => [`ExpressionOrValue`](/api/modules/server#expressionorvalue)\<`boolean`> |

#### Returns

`NavigationResult`\<`Entry`, `Paginated`, `TableInfo`, `OrderProperty`>

***

### orderBy

▸ **orderBy**(`property`, `direction?`): `NavigationResult`\<`Entry`, `Paginated`, `TableInfo`, `OrderProperty`>

#### Parameters

| Name | Type |
| :- | :- |
| `property` | `OrderProperty` |
| `direction?` | `"asc"` \| `"desc"` |

#### Returns

`NavigationResult`\<`Entry`, `Paginated`, `TableInfo`, `OrderProperty`>

***

### has

▸ **has**(`targetId`): `Promise`\<`boolean`>

Prove membership through a point or pair lookup, including retained IDs.

#### Parameters

| Name | Type |
| :- | :- |
| `targetId` | `Entry` extends \{ `id`: `Id`  } ? `Id` : `never` |

#### Returns

`Promise`\<`boolean`>

***

### unique

▸ **unique**(): `Promise`\<`null` | `Entry`>

Refuse if more than one identity is related, including unavailable ones.

#### Returns

`Promise`\<`null` | `Entry`>

***

### take

▸ **take**(`n`): `Promise`\<`Entry`\[]>

Read a prefix of at most 10000 entries.

#### Parameters

| Name | Type |
| :- | :- |
| `n` | `number` |

#### Returns

`Promise`\<`Entry`\[]>

***

### collect

▸ **collect**(): `Promise`\<`Entry`\[]>

Read the complete set or fail if the read exceeds its budget.

#### Returns

`Promise`\<`Entry`\[]>

***

### paginate

▸ **paginate**(`options`): `Promise`\<[`RelatedPage`](/api/modules/server#relatedpage)\<`Entry`>>

Query-only. Continue the same basis with an opaque cursor.

#### Parameters

| Name | Type |
| :- | :- |
| `options` | `Pick`\<[`PaginationOptions`](/api/interfaces/server.PaginationOptions), `"numItems"` \| `"cursor"`> |

#### Returns

`Promise`\<[`RelatedPage`](/api/modules/server#relatedpage)\<`Entry`>>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.