Skip to content

Documentation / @andrew_l/mongo-pagination / withMongoosePagination

Function: withMongoosePagination() ​

withMongoosePagination<T>(query, options?): QueryPaginator<ExtractDocType<T>>

Enhances a Mongoose query with pagination capabilities.

Type Parameters ​

• T extends AnyQuery

Parameters ​

• query: T

The Mongoose query to be paginated.

• options?: QueryPaginatorOptions

Optional configuration for pagination.

Returns ​

QueryPaginator<ExtractDocType<T>>

Examples ​

ts
// Basic usage with a Mongoose query:
import { withMongoosePagination } from './pagination';
import mongoose from 'mongoose';

async function paginateMongooseQuery() {
  const User = mongoose.model('User', new mongoose.Schema({ name: String, status: String }));

  const query = User.find({ status: 'active' });

  const paginator = withMongoosePagination(query, {
    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 custom preQuery and postQuery callbacks:
const paginator = withMongoosePagination(query, {
  preQuery: function () {
    console.log('Before executing the query');
  },
  postQuery: function () {
    console.log('After executing the query');
  },
});

const result = await paginator.exec();
console.log(result.items); // Logs items for the current page
console.log(result.metadata); // Logs pagination metadata