mongoose-aggregate-paginate-allowdiskuse
v1.0.1
Published
Mongoose plugin to add pegination for aggregations
Downloads
79
Maintainers
Readme
mongoose-aggregate-paginate-allowdiskuse
mongoose-aggregate-paginate-allowdiskuse
is a Mongoose plugin easy to add pegination for aggregates. It includes the optionallowDiskUse
for bigger queries. This plugin is to be used in combination with view pagination middleware such as express-paginate.
[][coveralls-url] [![js-standard-style][js-standard-style-img]][js-standard-style-url]
Index
Install
npm install mongoose-aggregate-paginate-allowdiskuse --save
Usage
This plugin must first be added to a schema:
var mongooseAggregatePaginate = require('mongoose-aggregate-paginate-allowdiskuse');
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 sortingpage
- Default:1
limit
- Default:10
sortBy
- Default:undefined
allowDiskUse
- Default:false
callback(err, results, pageCount, itemCount)
- A callback is called once pagination results are retrieved, or an error has occurred.
Examples
var MyModel = mongoose.model('MyModel',{
name : String,
age: Number,
city, String
})
// find users above 18 by city
var aggregate = MyModel.aggregate();
aggregate.match({age : {'lt' : 18 } })
.group({ _id: '$city' , count : { '$sum' : 1 } })
var options = { page : 1, limit : 15, allowDiskUse: true }
MyModel.aggregatePaginate(aggregate, options, function(err, results, pageCount, count) {
if(err)
{
console.err(err)
}
else
{
console.log(results)
}
})
Tests
npm test
Acknowlegements
mongoose-aggregate-paginate-allowdiskuse is based on mongoose-aggregate-paginate.
License
[coveralls-url]: (https://coveralls.io/github/Maheshkumar-Kakade/mongoose-aggregate-paginate?branch=master [js-standard-style-img]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg [js-standard-style-url]: http://standardjs.com/