{"_id":"@alamat/mongoose-paginate","_rev":"2-5cec793aaf597d1f283860a0b91f28d1","name":"@alamat/mongoose-paginate","dist-tags":{"latest":"5.0.4"},"versions":{"5.0.3":{"name":"@alamat/mongoose-paginate","description":"Pagination plugin for Mongoose","version":"5.0.3","author":{"name":"Edward Hotchkiss","email":"edward@edwardhotchkiss.com"},"contributors":[{"name":"Edward Hotchkiss","email":"edward@edwardhotchkiss.com"},{"name":"Nick Baugh","email":"niftylettuce@gmail.com"},{"name":"Dmitry Kirilyuk","email":"gk.joker@gmail.com"}],"repository":{"type":"git","url":"git+https://github.com/alamat/mongoose-paginate.git"},"license":"MIT","keywords":["mongoose","paginate","pagination","paging","page"],"engines":{"node":">=4.2.4"},"dependencies":{},"devDependencies":{"mongoose":"4.3.4","mocha":"2.3.4","chai":"3.4.1"},"scripts":{"test":"mocha tests/*.js -R spec --ui bdd --timeout 5000"},"gitHead":"d414722fea2337f908ce8cd35fe89f9649ddfe0b","bugs":{"url":"https://github.com/alamat/mongoose-paginate/issues"},"homepage":"https://github.com/alamat/mongoose-paginate#readme","_id":"@alamat/mongoose-paginate@5.0.3","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"dehamzah","email":"dehamzah@gmail.com"},"dist":{"integrity":"sha512-kNgjfsbdyC2JUKmr79mDzT+MJ3ubNXaIzep7XyMVb1cQ8+WfXFT2EEpuSw5wEwbqyKHfe/eF3ZXO+NXDaqAy5w==","shasum":"481f725681d30e93cdbed5f79b9282c706bef54f","tarball":"https://registry.npmjs.org/@alamat/mongoose-paginate/-/mongoose-paginate-5.0.3.tgz","fileCount":7,"unpackedSize":19249,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8o9YCRA9TVsSAnZWagAA3LQP/jP77P98dwAvrjBI7ORN\nLbEtmkEiC3tE6BiNr81PnlC0fFd2f/O8eQZI2r9VolfOIl/xv/cZju9OQkd2\nzTEMk6i8nyfWg8rxFipj2V6dZtwnvJAFH0Od5nh7tKlJBG7FelS+oem0SsPD\nu/11sgUaMxeuLU7VlvAive8jbLo9ZFD1UlSTxriYQmTB9eXaDtkfYheZgMLX\ny5VlfuWRUm7hV8SyGlluAMjknlQ4eTkmmZdtGja1Bymqkf8kN0ePOlCwEv9V\nvYSLNsWE1xa/WtOTmSK46plRzkwTIgh0dlezhiq3VXHw3/wN7qvQjZbrj8/g\nVeSgeXzQq9AYf3kURT8k0+ImhAeyDjIosflCamdAOqoxyzb6qKkRbUsCz7zk\nhAU3VS0EUMrZ4uuXCeuYY1VwJOBBvc3mV7OnbZGQFxlL+cp9Ms6GKFLrNsqw\npHBXquDJ1v78Q+wtxo+ORQYJI6eZEP/N+J7dUoroKNy8rzP6km4fUziCgWVc\nL5bhy6liZZiZeQMn7RlW3Ju52UxDUppsZPSzXwVax2JGJvjPu84AnB/UPWuX\nRoAn5I0w5NEnnCjWUEp8SCoWwAJ9XELpoodQmhTlYMSgLqaGU/62j+HcSjnY\nWn4ZQ5YMkjUzIyGmKcyxTFna7kLhJugmBhx9apaSdZwYYZ5+0H1t6km1yU3K\nmKjF\r\n=+fuh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICwpsbaxI7U8h/XxdFlXdWLtnHtb40V7TzfwVkbcTxF7AiEAjFc+4PAZrJdG+G2CmVBCKnFoQHv2kGM2Tmr/m5moMlM="}]},"maintainers":[{"name":"dehamzah","email":"dehamzah@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mongoose-paginate_5.0.3_1542623064032_0.21025473280601803"},"_hasShrinkwrap":false},"5.0.4":{"name":"@alamat/mongoose-paginate","description":"Pagination plugin for Mongoose","version":"5.0.4","author":{"name":"Edward Hotchkiss","email":"edward@edwardhotchkiss.com"},"contributors":[{"name":"Edward Hotchkiss","email":"edward@edwardhotchkiss.com"},{"name":"Nick Baugh","email":"niftylettuce@gmail.com"},{"name":"Dmitry Kirilyuk","email":"gk.joker@gmail.com"}],"repository":{"type":"git","url":"git+https://github.com/alamat/mongoose-paginate.git"},"license":"MIT","keywords":["mongoose","paginate","pagination","paging","page"],"engines":{"node":">=4.2.4"},"dependencies":{},"devDependencies":{"mongoose":"4.3.4","mocha":"2.3.4","chai":"3.4.1"},"scripts":{"test":"mocha tests/*.js -R spec --ui bdd --timeout 5000"},"gitHead":"54c721d4384decb720d66693514a45c14247cb29","bugs":{"url":"https://github.com/alamat/mongoose-paginate/issues"},"homepage":"https://github.com/alamat/mongoose-paginate#readme","_id":"@alamat/mongoose-paginate@5.0.4","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"dehamzah","email":"dehamzah@gmail.com"},"dist":{"integrity":"sha512-rne5fs2A+ru7jsearAqDyvheY9JXI2RbgFuw7pyetRzKIUyWN6eHzX95cZ6QwvKA+r4iEAyJ5Xwq1haM4uoAHA==","shasum":"b57e5431880965b664704e0bd595f6efdb58c65f","tarball":"https://registry.npmjs.org/@alamat/mongoose-paginate/-/mongoose-paginate-5.0.4.tgz","fileCount":7,"unpackedSize":19763,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8qNqCRA9TVsSAnZWagAA72MP/RID+BGf+ncOiNvGRs1d\nkF+sbXtQW9bl4mCgqtuwr4RKkBBARdlgHySvyjw+6h5ubC6IWOyk75rzzwdB\nPXH+tgZMOR6YLoFBlt77915qKsgRHXGFcZWfL6saSgVGWeX/EGO6YM4rhU4I\nsCWHAbgyq1T6iu2M4PTOi8CumZz05G74H0VDTPPvkYRRjDK2+Rg/b/FhQlha\n8fhMA0cGg4k/SisAX8tVUtBNu8Ig0woaEolYDuVIZhi8FREu2nrpwSA94CG+\nzH6CrqMTByUGOgoQdwwXYdYN9cgj67tBt1aB6enuRTtbOASVgUhV7h16euF/\nVZTKE1lC9naCKLrK8O3MB9sERKQvKbyMTDO7FHOf1PG7Wiq1ei8EiBmrIrQA\naRIhPKBv5ygKRT+P+Kr8MXz6Nog/MqNA9mY9s4dVx/DzLlGGv+4hWH/qiFr7\n1j78Vx/OWFoWM06KPzq8eNmKEOWdJk7ONd+Q6H1AgMbs2pY5125A39MAMY40\njEBzAe/qnLygNaEIGonSaBnDO78PuoYFvxaRqVPeUQFxZIdlR9GDiLJrUblg\n2/straTUtlQouJhCs66fvG6cPH+iR8lnce4CjFgySmBrF7rkF2yPnsydwsrl\nAQINHpCRXB0L7MJQ+Krg832dccCpNZlkR8dzGP1OSysh8eAKVvYCmmJOgyzz\neEpo\r\n=mdLP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAFsdhHFioeS8bpb7ggzRQI9WVdCt36NrQmOQaOOaprBAiEAv/capTBYfJAPLKMbRKWxgveh785St+R9LxnvT/K/+Uk="}]},"maintainers":[{"name":"dehamzah","email":"dehamzah@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mongoose-paginate_5.0.4_1542628201909_0.4360308411418874"},"_hasShrinkwrap":false}},"time":{"created":"2018-11-19T10:24:23.869Z","5.0.3":"2018-11-19T10:24:24.146Z","modified":"2022-04-04T12:32:52.293Z","5.0.4":"2018-11-19T11:50:02.087Z"},"maintainers":[{"name":"dehamzah","email":"dehamzah@gmail.com"}],"description":"Pagination plugin for Mongoose","homepage":"https://github.com/alamat/mongoose-paginate#readme","keywords":["mongoose","paginate","pagination","paging","page"],"repository":{"type":"git","url":"git+https://github.com/alamat/mongoose-paginate.git"},"contributors":[{"name":"Edward Hotchkiss","email":"edward@edwardhotchkiss.com"},{"name":"Nick Baugh","email":"niftylettuce@gmail.com"},{"name":"Dmitry Kirilyuk","email":"gk.joker@gmail.com"}],"author":{"name":"Edward Hotchkiss","email":"edward@edwardhotchkiss.com"},"bugs":{"url":"https://github.com/alamat/mongoose-paginate/issues"},"license":"MIT","readme":"\n# mongoose-paginate\n\n> Pagination plugin for [Mongoose](http://mongoosejs.com)\n\n[![NPM version](https://img.shields.io/npm/v/mongoose-paginate.svg)](https://npmjs.org/package/mongoose-paginate)\n[![Build status](https://img.shields.io/travis/edwardhotchkiss/mongoose-paginate.svg)](https://travis-ci.org/edwardhotchkiss/mongoose-paginate)\n\n**Note:** This plugin will only work with Node.js >= 4.2 and Mongoose >= 4.2\n=======\n[![NPM](https://nodei.co/npm/mongoose-paginate.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/mongoose-paginate/)\n\n## Installation\n\n```sh\nnpm install mongoose-paginate\n```\n\n## Usage\n\nAdd plugin to a schema and then use model `paginate` method:\n\n```js\nvar mongoose = require('mongoose');\nvar mongoosePaginate = require('mongoose-paginate');\n\nvar schema = new mongoose.Schema({ /* schema definition */ });\nschema.plugin(mongoosePaginate);\n\nvar Model = mongoose.model('Model',  schema); // Model.paginate()\n```\n\n### Model.paginate([query], [options], [callback])\n\n**Parameters**\n\n* `[query]` {Object} - Query criteria. [Documentation](https://docs.mongodb.org/manual/tutorial/query-documents)\n* `[options]` {Object}\n  - `[select]` {Object | String} - Fields to return (by default returns all fields). [Documentation](http://mongoosejs.com/docs/api.html#query_Query-select) \n  - `[sort]` {Object | String} - Sort order. [Documentation](http://mongoosejs.com/docs/api.html#query_Query-sort) \n  - `[populate]` {Array | Object | String} - Paths which should be populated with other documents. [Documentation](http://mongoosejs.com/docs/api.html#query_Query-populate)\n  - `[lean=false]` {Boolean} - Should return plain javascript objects instead of Mongoose documents?  [Documentation](http://mongoosejs.com/docs/api.html#query_Query-lean)\n  - `[leanWithId=true]` {Boolean} - If `lean` and `leanWithId` are `true`, adds `id` field with string representation of `_id` to every document\n  - `[offset=0]` {Number} - Use `offset` or `page` to set skip position\n  - `[page=1]` {Number}\n  - `[limit=10]` {Number}\n* `[callback(err, result)]` - If specified the callback is called once pagination results are retrieved or when an error has occurred\n\n**Return value**\n\nPromise fulfilled with object having properties:\n* `docs` {Array} - Array of documents\n* `total` {Number} - Total number of documents in collection that match a query\n* `limit` {Number} - Limit that was used\n* `[page]` {Number} - Only if specified or default `page`/`offset` values were used \n* `[pages]` {Number} - Only if `page` specified or default `page`/`offset` values were used \n* `[offset]` {Number} - Only if specified or default `page`/`offset` values were used\n\n### Examples\n\n#### Skip 20 documents and return 10 documents\n\n```js\nModel.paginate({}, { page: 3, limit: 10 }, function(err, result) {\n  // result.docs\n  // result.total\n  // result.limit - 10\n  // result.page - 3\n  // result.pages\n});\n```\n\nOr you can do the same with `offset` and `limit`:\n\n```js\nModel.paginate({}, { offset: 20, limit: 10 }, function(err, result) {\n  // result.docs\n  // result.total\n  // result.limit - 10\n  // result.offset - 20\n});\n```\n\nWith promise:\n\n```js\nModel.paginate({}, { offset: 20, limit: 10 }).then(function(result) {\n  // ...\n});\n```\n\n#### More advanced example\n\n```js\nvar query = {};\nvar options = {\n  select: 'title date author',\n  sort: { date: -1 },\n  populate: 'author',\n  lean: true,\n  offset: 20, \n  limit: 10\n};\n\nBook.paginate(query, options).then(function(result) {\n  // ...\n});\n```\n\n#### Zero limit\n\nYou can use `limit=0` to get only metadata:\n\n```js\nModel.paginate({}, { offset: 100, limit: 0 }).then(function(result) {\n  // result.docs - empty array\n  // result.total\n  // result.limit - 0\n  // result.offset - 100\n});\n```\n\n#### Set custom default options for all queries\n\nconfig.js:\n\n```js\nvar mongoosePaginate = require('mongoose-paginate');\n\nmongoosePaginate.paginate.options = { \n  lean:  true,\n  limit: 20\n};\n```\n\ncontroller.js:\n\n```js\nModel.paginate().then(function(result) {\n  // result.docs - array of plain javascript objects\n  // result.limit - 20\n});\n```\n\n## Tests\n\n```sh\nnpm install\nnpm test\n```\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}