mongoose-paginate-podsystem

4.0.5 • Public • Published

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

Package Sidebar

Install

npm i mongoose-paginate-podsystem

Weekly Downloads

4

Version

4.0.5

License

none

Unpacked Size

21.2 kB

Total Files

10

Last publish

Collaborators

  • podsystem