Skip to content

Documentation / @andrew_l/mongo-pagination / withMongoPagination

Function: withMongoPagination() ​

withMongoPagination<T>(cursor, options?): QueryPaginator<ExtractSchema<T>>

Enhances a MongoDB FindCursor with pagination capabilities.

Type Parameters ​

• T extends FindCursor<any>

Parameters ​

• cursor: T

The MongoDB cursor to be paginated.

• options?: QueryPaginatorOptions

Optional configuration for pagination.

Returns ​

QueryPaginator<ExtractSchema<T>>

Examples ​

ts
// Basic usage with a MongoDB cursor:
import { MongoClient } from 'mongodb';

async function paginateCollection() {
  const client = new MongoClient('mongodb://localhost:27017');
  await client.connect();

  const db = client.db('exampleDb');
  const collection = db.collection('exampleCollection');

  const cursor = collection.find({ status: 'active' });

  const paginator = withMongoPagination(cursor, {
    paginationFields: ['_id'],
    next: null,
  });

  const result = await paginator.exec();
  console.log(result.items); // Logs the items for the current page
  console.log(result.metadata); // Logs pagination metadata
}
ts
// Using a custom preQuery callback:
const paginator = withMongoPagination(cursor, {
  preQuery: function () {
    console.log('Executing query...');
  },
});

const result = await paginator.exec();
console.log(result.items);