JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 13962
  • Score
    100M100P100Q140668F

Plugin for Mongoose schemas to easily add paginated queries and results

Package Exports

  • mongoose-paginate

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (mongoose-paginate) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

mongoose-paginate

NPM version NPM downloads Circle CI Static Analysis MIT License Slack

mongoose-paginate is a plugin for Mongoose schemas to easily add paginated queries and results. This plugin is to be used in combination with view pagination middleware such as express-paginate.


NOTICE: Versions > 3.1.4 are deprecated and unpublished from NPM due to a bad commit. Please use version 3.1.3 for no breaking changes or upgrade to the latest stable 4.0.0 release (see below documentation).

Index

Install

npm install -S mongoose-paginate

Usage

This plugin must first be added to a schema:

var mongoosePaginate = require('mongoose-paginate');

MySchema.plugin(mongoosePaginate);

MySchema will have a new function called paginate (e.g. MySchema.paginate()).

MySchema.paginate(query, options, callback)

Arguments

  • query - An object for the Mongoose query.
  • options - An object with options for the Mongoose query, such as sorting and population
    • page - Default: 1
    • limit - Default: 10
    • columns - Default: null
    • sortBy - Default: null
    • populate - Default: null
    • lean - Default: null
  • callback(err, results, pageCount, itemCount) - A callback which is called once pagination results are retrieved, or when an error has occurred.

Examples

// basic example usage of `mongoose-pagination`
// querying for `all` {} items in `MySchema`
// paginating by second page, 10 items per page (10 results, page 2)

var mongoosePaginate = require('mongoose-paginate');

MySchema.plugin(mongoosePaginate);

MySchema.paginate({}, {
  page: 2, limit: 10
}, callback);
// advanced example usage of `mongoose-pagination`
// querying for `{ columns: 'title', { populate: 'some_ref' }, { sortBy : { title : -1 } }` items in `MySchema`
// paginating by second page, 10 items per page (10 results, page 2)

MySchema.paginate(
  {},
  {
    page: 2,
    limit: 10,
    columns: 'title',
    populate: 'some_ref',
    sortBy: {
      title: -1
    },
    lean: true
  },
  callback
);
// populating more than one ref

MySchema.paginate({}, {
  page: 2,
  limit: 10,
  columns: 'title',
  populate: [ 'some_ref', 'other_ref' ],
  sortBy: {
    title: -1
  },
  lean: true
}, callback);
// selecting specific field for population
// <http://mongoosejs.com/docs/api.html#query_Query-populate>

MySchema.paginate({}, {
  columns: 'title',
  populate: [
    {
      path: 'some_ref',
      select: 'field_a field_b'
    },
    'other_ref'
  ],
  sortBy: {
    title: -1
  },
  lean: true
}, callback);

Tests

npm test

Contributors

License

MIT