mongoose-paginate-podsystem
v4.0.5
Published
Fork of mongoose-paginate for limit count results. Plugin for Mongoose schemas to easily add paginated queries and results
Downloads
14
Maintainers
Readme
mongoose-paginate
mongoose-paginateis 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-paginateUsage
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 populationpage- Default:1limit- Default:10columns- Default:nullsortBy- Default:nullpopulate- Default:nulllean- 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 testContributors
- Edward Hotchkiss [email protected]
- Nick Baugh [email protected]
- villesau [email protected]
- Danilo Barsotti [email protected]
- t_yamo [email protected]
- andrew <andrew@andrew-desktop.(none)>
- Alberto Gimeno Brieba [email protected]
- zhiqingchen [email protected]
- Alexander Manzyuk [email protected]
- Gia [email protected]
- Hrvoje Šimić [email protected]
- Mario Colque [email protected]
- Richard van der Dys [email protected]
- Yolanda Septiana [email protected]
- charles bourasseau [email protected]
- giulianoiacobelli [email protected]
