📄 tanstack/db/latest/docs/reference/classes/BTreeIndex

File: BTreeIndex.md | Updated: 11/15/2025

Source: https://tanstack.com/db/latest/docs/reference/classes/BTreeIndex



TanStack

DB v0v0

Search...

+ K

Auto

Log In

TanStack StartRC

Docs Examples GitHub Contributors

TanStack Router

Docs Examples GitHub Contributors

TanStack Query

Docs Examples GitHub Contributors

TanStack Table

Docs Examples Github Contributors

TanStack Formnew

Docs Examples Github Contributors

TanStack DBbeta

Docs Github Contributors

TanStack Virtual

Docs Examples Github Contributors

TanStack Paceralpha

Docs Examples Github Contributors

TanStack Storealpha

Docs Examples Github Contributors

TanStack Devtoolsalpha

Docs Github Contributors

More Libraries

Maintainers Partners Support Learn StatsBETA Discord Merch Blog GitHub Ethos Brand Guide

Documentation

Framework

React logo

React

Version

Latest

Search...

+ K

Menu

Getting Started

Guides

Collections

Frameworks

Community

API Reference

Framework

React logo

React

Version

Latest

Menu

Getting Started

Guides

Collections

Frameworks

Community

API Reference

On this page

BTreeIndex

Copy Markdown

Class: BTreeIndex<TKey>
=======================

Defined in: packages/db/src/indexes/btree-index.ts:30

B+Tree index for sorted data with range queries This maintains items in sorted order and provides efficient range operations

Extends
-------

Type Parameters
---------------
### TKey

TKey extends string | number = string | number

Constructors
------------
### Constructor

ts

new BTreeIndex<TKey>(
   id, 
   expression, 
   name?, 
options?): BTreeIndex<TKey>;


new BTreeIndex<TKey>(
   id, 
   expression, 
   name?, 
options?): BTreeIndex<TKey>;

Defined in: packages/db/src/indexes/btree-index.ts:50

#### Parameters ##### id

number

##### expression

BasicExpression

##### name?

string

##### options?

any

#### Returns

BTreeIndex<TKey>

#### Overrides

BaseIndex .constructor

Properties
----------
### compareOptions

ts

protected compareOptions: CompareOptions;


protected compareOptions: CompareOptions;

Defined in: packages/db/src/indexes/base-index.ts:87

#### Inherited from

BaseIndex .compareOptions


### expression

ts

readonly expression: BasicExpression;


readonly expression: BasicExpression;

Defined in: packages/db/src/indexes/base-index.ts:81

#### Inherited from

BaseIndex .expression


### id

ts

readonly id: number;


readonly id: number;

Defined in: packages/db/src/indexes/base-index.ts:79

#### Inherited from

BaseIndex .id


### lastUpdated

ts

protected lastUpdated: Date;


protected lastUpdated: Date;

Defined in: packages/db/src/indexes/base-index.ts:86

#### Inherited from

BaseIndex .lastUpdated


### lookupCount

ts

protected lookupCount: number = 0;


protected lookupCount: number = 0;

Defined in: packages/db/src/indexes/base-index.ts:84

#### Inherited from

BaseIndex .lookupCount


### name?

ts

readonly optional name: string;


readonly optional name: string;

Defined in: packages/db/src/indexes/base-index.ts:80

#### Inherited from

BaseIndex .name


### supportedOperations

ts

readonly supportedOperations: Set<"eq" | "gt" | "gte" | "lt" | "lte" | "in" | "like" | "ilike">;


readonly supportedOperations: Set<"eq" | "gt" | "gte" | "lt" | "lte" | "in" | "like" | "ilike">;

Defined in: packages/db/src/indexes/btree-index.ts:33

#### Overrides

BaseIndex .supportedOperations


### totalLookupTime

ts

protected totalLookupTime: number = 0;


protected totalLookupTime: number = 0;

Defined in: packages/db/src/indexes/base-index.ts:85

#### Inherited from

BaseIndex .totalLookupTime

Accessors
---------
### indexedKeysSet #### Get Signature

ts

get indexedKeysSet(): Set<TKey>;


get indexedKeysSet(): Set<TKey>;

Defined in: packages/db/src/indexes/btree-index.ts:333

##### Returns

Set<TKey>

#### Overrides

BaseIndex .indexedKeysSet


### keyCount #### Get Signature

ts

get keyCount(): number;


get keyCount(): number;

Defined in: packages/db/src/indexes/btree-index.ts:199

Gets the number of indexed keys

##### Returns

number

#### Overrides

BaseIndex .keyCount


### orderedEntriesArray #### Get Signature

ts

get orderedEntriesArray(): [any, Set<TKey>][];


get orderedEntriesArray(): [any, Set<TKey>][];

Defined in: packages/db/src/indexes/btree-index.ts:337

##### Returns

[any, Set<TKey>][]

#### Overrides

BaseIndex .orderedEntriesArray


### orderedEntriesArrayReversed #### Get Signature

ts

get orderedEntriesArrayReversed(): [any, Set<TKey>][];


get orderedEntriesArrayReversed(): [any, Set<TKey>][];

Defined in: packages/db/src/indexes/btree-index.ts:343

##### Returns

[any, Set<TKey>][]

#### Overrides

BaseIndex .orderedEntriesArrayReversed


### valueMapData #### Get Signature

ts

get valueMapData(): Map<any, Set<TKey>>;


get valueMapData(): Map<any, Set<TKey>>;

Defined in: packages/db/src/indexes/btree-index.ts:350

##### Returns

Map<any, Set<TKey>>

#### Overrides

BaseIndex .valueMapData

Methods
-------
### add()

ts

add(key, item): void;


add(key, item): void;

Defined in: packages/db/src/indexes/btree-index.ts:69

Adds a value to the index

#### Parameters ##### key

TKey

##### item

any

#### Returns

void

#### Overrides

BaseIndex .add


### build()

ts

build(entries): void;


build(entries): void;

Defined in: packages/db/src/indexes/btree-index.ts:143

Builds the index from a collection of entries

#### Parameters ##### entries

Iterable<[TKey, any]>

#### Returns

void

#### Overrides

BaseIndex .build


### clear()

ts

clear(): void;


clear(): void;

Defined in: packages/db/src/indexes/btree-index.ts:154

Clears all data from the index

#### Returns

void

#### Overrides

BaseIndex .clear


### equalityLookup()

ts

equalityLookup(value): Set<TKey>;


equalityLookup(value): Set<TKey>;

Defined in: packages/db/src/indexes/btree-index.ts:208

Performs an equality lookup

#### Parameters ##### value

any

#### Returns

Set<TKey>

#### Overrides

BaseIndex .equalityLookup


### evaluateIndexExpression()

ts

protected evaluateIndexExpression(item): any;


protected evaluateIndexExpression(item): any;

Defined in: packages/db/src/indexes/base-index.ts:182

#### Parameters ##### item

any

#### Returns

any

#### Inherited from

BaseIndex .evaluateIndexExpression


### getStats()

ts

getStats(): IndexStats;


getStats(): IndexStats;

Defined in: packages/db/src/indexes/base-index.ts:169

#### Returns

IndexStats

#### Inherited from

BaseIndex .getStats


### inArrayLookup()

ts

inArrayLookup(values): Set<TKey>;


inArrayLookup(values): Set<TKey>;

Defined in: packages/db/src/indexes/btree-index.ts:318

Performs an IN array lookup

#### Parameters ##### values

any[]

#### Returns

Set<TKey>

#### Overrides

BaseIndex .inArrayLookup


### initialize()

ts

protected initialize(_options?): void;


protected initialize(_options?): void;

Defined in: packages/db/src/indexes/btree-index.ts:64

#### Parameters ##### _options?

BTreeIndexOptions

#### Returns

void

#### Overrides

BaseIndex .initialize


### lookup()

ts

lookup(operation, value): Set<TKey>;


lookup(operation, value): Set<TKey>;

Defined in: packages/db/src/indexes/btree-index.ts:164

Performs a lookup operation

#### Parameters ##### operation

"eq" | "gt" | "gte" | "lt" | "lte" | "in" | "like" | "ilike"

##### value

any

#### Returns

Set<TKey>

#### Overrides

BaseIndex .lookup


### matchesCompareOptions()

ts

matchesCompareOptions(compareOptions): boolean;


matchesCompareOptions(compareOptions): boolean;

Defined in: packages/db/src/indexes/base-index.ts:146

Checks if the compare options match the index's compare options. The direction is ignored because the index can be reversed if the direction is different.

#### Parameters ##### compareOptions

CompareOptions

#### Returns

boolean

#### Inherited from

BaseIndex .matchesCompareOptions


### matchesDirection()

ts

matchesDirection(direction): boolean;


matchesDirection(direction): boolean;

Defined in: packages/db/src/indexes/base-index.ts:165

Checks if the index matches the provided direction.

#### Parameters ##### direction

OrderByDirection

#### Returns

boolean

#### Inherited from

BaseIndex .matchesDirection


### matchesField()

ts

matchesField(fieldPath): boolean;


matchesField(fieldPath): boolean;

Defined in: packages/db/src/indexes/base-index.ts:134

#### Parameters ##### fieldPath

string[]

#### Returns

boolean

#### Inherited from

BaseIndex .matchesField


### rangeQuery()

ts

rangeQuery(options): Set<TKey>;


rangeQuery(options): Set<TKey>;

Defined in: packages/db/src/indexes/btree-index.ts:217

Performs a range query with options This is more efficient for compound queries like "WHERE a > 5 AND a < 10"

#### Parameters ##### options

RangeQueryOptions = {}

#### Returns

Set<TKey>

#### Overrides

BaseIndex .rangeQuery


### rangeQueryReversed()

ts

rangeQueryReversed(options): Set<TKey>;


rangeQueryReversed(options): Set<TKey>;

Defined in: packages/db/src/indexes/btree-index.ts:250

Performs a reversed range query

#### Parameters ##### options

RangeQueryOptions = {}

#### Returns

Set<TKey>

#### Overrides

BaseIndex .rangeQueryReversed


### remove()

ts

remove(key, item): void;


remove(key, item): void;

Defined in: packages/db/src/indexes/btree-index.ts:100

Removes a value from the index

#### Parameters ##### key

TKey

##### item

any

#### Returns

void

#### Overrides

BaseIndex .remove


### supports()

ts

supports(operation): boolean;


supports(operation): boolean;

Defined in: packages/db/src/indexes/base-index.ts:130

#### Parameters ##### operation

"eq" | "gt" | "gte" | "lt" | "lte" | "in" | "like" | "ilike"

#### Returns

boolean

#### Inherited from

BaseIndex .supports


### take()

ts

take(
   n, 
   from?, 
   filterFn?): TKey[];


take(
   n, 
   from?, 
   filterFn?): TKey[];

Defined in: packages/db/src/indexes/btree-index.ts:295

Returns the next n items after the provided item or the first n items if no from item is provided.

#### Parameters ##### n

number

The number of items to return

##### from?

any

The item to start from (exclusive). Starts from the smallest item (inclusive) if not provided.

##### filterFn?

(key) => boolean

#### Returns

TKey[]

The next n items after the provided key. Returns the first n items if no from item is provided.

#### Overrides

BaseIndex .take


### takeReversed()

ts

takeReversed(
   n, 
   from?, 
   filterFn?): TKey[];


takeReversed(
   n, 
   from?, 
   filterFn?): TKey[];

Defined in: packages/db/src/indexes/btree-index.ts:306

Returns the next n items before the provided item (in descending order) or the last n items if no from item is provided.

#### Parameters ##### n

number

The number of items to return

##### from?

any

The item to start from (exclusive). Starts from the largest item (inclusive) if not provided.

##### filterFn?

(key) => boolean

#### Returns

TKey[]

The next n items before the provided key. Returns the last n items if no from item is provided.

#### Overrides

BaseIndex .takeReversed


### trackLookup()

ts

protected trackLookup(startTime): void;


protected trackLookup(startTime): void;

Defined in: packages/db/src/indexes/base-index.ts:187

#### Parameters ##### startTime

number

#### Returns

void

#### Inherited from

BaseIndex .trackLookup


### update()

ts

update(
   key, 
   oldItem, 
   newItem): void;


update(
   key, 
   oldItem, 
   newItem): void;

Defined in: packages/db/src/indexes/btree-index.ts:135

Updates a value in the index

#### Parameters ##### key

TKey

##### oldItem

any

##### newItem

any

#### Returns

void

#### Overrides

BaseIndex .update


### updateTimestamp()

ts

protected updateTimestamp(): void;


protected updateTimestamp(): void;

Defined in: packages/db/src/indexes/base-index.ts:193

#### Returns

void

#### Inherited from

BaseIndex .updateTimestamp

Edit on GitHub

Home

Partners Become a Partner

Code RabbitCode Rabbit CloudflareCloudflare AG GridAG Grid NetlifyNetlify NeonNeon WorkOSWorkOS ClerkClerk ConvexConvex ElectricElectric SentrySentry PrismaPrisma StrapiStrapi UnkeyUnkey