Nighttime Peanut Migrations

    mongoose-aggregate-paginate

    2.0.2 • Public • Published

    mongoose-aggregate-paginate

    mongoose-aggregate-paginate is a Mongoose plugin easy to add pagination for aggregates. This plugin can be used in combination with view pagination middleware such as express-paginate.

    Build Status npm version Dependency Status Test Coverage js-standard-style

    NPM

    Index

    Install

    npm install mongoose-aggregate-paginate --save

    Usage

    This plugin must first be added to a schema:

    let mongooseAggregatePaginate = require('mongoose-aggregate-paginate');
    
    mySchema.plugin(mongooseAggregatePaginate);

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

    MyModel.aggregatePaginate(aggregate, options, callback)

    Arguments

    • aggregate - An object of the Mongoose aggregate.
    • options - An object with options for the Mongoose query, such as sorting
      • page - Default: 1
      • limit - Default: 10
      • sort - Default: undefined
    • callback(err, results, pages, total) - A callback is called once pagination results are retrieved, or an error has occurred. If not specified promise will be returned

    Returns

    • Promise - Promise object

    Examples

    let MyModel = mongoose.model('MyModel',{
      name : String,
      age: Number,
      city, String
    })
    
    // find users above 18 by city
    let aggregate = MyModel.aggregate();
    aggregate.match({age : {'lt' : 18 } })
    .group({ _id: '$city' , count : { '$sum' : 1 } })
    let options = { page : 1, limit : 15}
    
    // callback
    MyModel.aggregatePaginate(aggregate, options, function(err, results, pages, count) {
      if(err) 
      {
        console.err(err)
      }
      else
      { 
        console.log(results)
      }
    })
    
    // Promise
     MyModel.aggregatePaginate(aggregate, options)
      .then(function(value) {
        console.log(value.docs, value.pages, value.total)
      })
      .catch(function(err){ 
        console.err(err)
      })

    Tests

    npm test

    Acknowledgements

    mongoose-aggregate-paginate was inspired by mongoose-paginate.

    License

    MIT

    Install

    npm i mongoose-aggregate-paginate

    DownloadsWeekly Downloads

    3,026

    Version

    2.0.2

    License

    MIT

    Unpacked Size

    7.87 kB

    Total Files

    5

    Last publish

    Collaborators

    • maheshkumar-kakade