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

    Install

    npm i mongoose-paginate-podsystem

    DownloadsWeekly Downloads

    8

    Version

    4.0.5

    License

    none

    Unpacked Size

    21.2 kB

    Total Files

    10

    Last publish

    Collaborators

    • avatar