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
7
Maintainers
Readme
mongoose-paginate
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 populationpage
- 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
- 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]