{"_id":"mongoose-middleware","_rev":"46-4d939b40c82458227fec06cea4418b0d","name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","dist-tags":{"latest":"2.0.1"},"versions":{"0.1.0":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.1.0","scripts":{"pretest":"rm -rf lib-cov ; jshint lib/*.js ; jscoverage lib lib-cov","test":"mocha --check-leaks -R spec -r ./test/common.js -u bdd ./test/lib/*.js","posttest":"rm -rf reports ; mkdir -p reports ; MONGOOSE_MIDDLEWARE_COVERAGE=true mocha --check-leaks -R mocha-lcov-reporter -r ./test/common.js -u bdd ./test/lib/*.js | ./node_modules/coveralls/bin/coveralls.js"},"dependencies":{"mongoose":"~3.6.11"},"devDependencies":{"chai":"*","coveralls":"*","jscoverage":"*","jshint":"*","mocha":"*","mocha-lcov-reporter":"*"},"repository":{"type":"git","url":"git@github.com:PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":"~0.10.3"},"_id":"mongoose-middleware@0.1.0","dist":{"shasum":"53c0244b2167e8525b7cd7e4c85800068909d7c7","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.1.0.tgz","integrity":"sha512-QVdHXjJ4TbWPTYith8mxm+JalyTM/p427n9nCTABkCCubDNEsBoTE+kuvWXlWVROZLceVZrhkdzdLCYWYG+XSg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuXwI3yujc1qyJo8rPS+kBooWdsFHH6dye4BX8T7BrMAIgXO8s8jXFti/KWnKmECov7igANVOGp71Hj1rv82R4N7c="}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"directories":{}},"0.1.1":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.1.1","scripts":{"pretest":"rm -rf lib-cov ; jshint lib/*.js ; jscoverage lib lib-cov","test":"mocha --check-leaks -R spec -r ./test/common.js -u bdd ./test/lib/*.js","posttest":"rm -rf reports ; mkdir -p reports ; MONGOOSE_MIDDLEWARE_COVERAGE=true mocha --check-leaks -R mocha-lcov-reporter -r ./test/common.js -u bdd ./test/lib/*.js | ./node_modules/coveralls/bin/coveralls.js"},"dependencies":{"mongoose":"~3.6.11"},"devDependencies":{"chai":"*","coveralls":"*","jscoverage":"*","jshint":"*","mocha":"*","mocha-lcov-reporter":"*"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"repository":{"type":"git","url":"git@github.com:PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":"~0.10.3"},"_id":"mongoose-middleware@0.1.1","dist":{"shasum":"005cb69b39ddced5aacc5269cf9b69719cc58a89","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.1.1.tgz","integrity":"sha512-1an9B1VvcnVrcw8DfwuEnEFVaT+qeoJSmlw6/aThDl5rz8BNiJyCmZL1YbqeZSmvXpILe/mZEoOf9+oK8uMCWw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAlsVJmtnFgr5vPJ5boxcRqrBwztRZXd8HNxc2QI+PneAiEAufknk0eGEiYYh8/1jlfFdDA9t5WY+x4HJMpMZNcRSVE="}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"directories":{}},"0.1.2":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.1.2","scripts":{"pretest":"rm -rf lib-cov ; jshint lib/*.js ; jscoverage lib lib-cov","test":"mocha --check-leaks -R spec -r ./test/common.js -u bdd ./test/lib/*.js","posttest":"rm -rf reports ; mkdir -p reports ; MONGOOSE_MIDDLEWARE_COVERAGE=true mocha --check-leaks -R mocha-lcov-reporter -r ./test/common.js -u bdd ./test/lib/*.js | ./node_modules/coveralls/bin/coveralls.js"},"dependencies":{"mongoose":"~3.6.11"},"devDependencies":{"chai":"*","coveralls":"*","jscoverage":"*","jshint":"*","mocha":"*","mocha-lcov-reporter":"*"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"repository":{"type":"git","url":"git@github.com:PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.8.0"},"_id":"mongoose-middleware@0.1.2","dist":{"shasum":"d0dc4aec85c6334581c591122ffae83512bccc46","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.1.2.tgz","integrity":"sha512-gFO+SVQA0dnyCd52BwFE42Eg8DPei/iJTFwH/9jRj4NJ8PV29mD4Gy5mJhfEAW677zZCP8GOrR1oY5AMYb13dA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6UEJK4zAG2cJEiHZmKyiUwzHux97PM1zabglhVufsrwIhALVaY7PbjlnroS5J03B0lIRrK6r/jbhjUizjnXuajJ3t"}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"directories":{}},"0.2.1":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.1","scripts":{"pretest":"rm -rf lib-cov ; jshint lib/*.js ; jscoverage lib lib-cov","test":"mocha --check-leaks -R spec -r ./test/common.js -u bdd ./test/lib/*.js","posttest":"rm -rf reports ; mkdir -p reports ; MONGOOSE_MIDDLEWARE_COVERAGE=true mocha --check-leaks -R mocha-lcov-reporter -r ./test/common.js -u bdd ./test/lib/*.js | ./node_modules/coveralls/bin/coveralls.js"},"devDependencies":{"chai":"*","coveralls":"*","jscoverage":"*","jshint":"*","mocha":"*","mocha-lcov-reporter":"*","mongoose":"~3.6.11"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"repository":{"type":"git","url":"git@github.com:PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.8.0"},"_id":"mongoose-middleware@0.2.1","dist":{"shasum":"73f1546da7717137c07248b5d64a475825bc8141","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.1.tgz","integrity":"sha512-kjCP7NuhRF9UEdkz2h/M/BUMxHp0gAFksPuzN96zyVyorRbFYf6MrMN/9VBot29wIdX/985Qg+jtNsO9rd7IWg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCh5Ak/t+6aN36FXZH36LpiqBQXgKkte6coF2VuYDDGfwIhAP5LO7EeH/aMo5JfLTGbiOmG29ZkEEilwwRLlaFonzG+"}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"directories":{}},"0.2.2":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.2","scripts":{"pretest":"rm -rf lib-cov ; jshint lib/*.js ; jscoverage lib lib-cov","test":"mocha --check-leaks -R spec -r ./test/common.js -u bdd ./test/lib/*.js","posttest":"rm -rf reports ; mkdir -p reports ; MONGOOSE_MIDDLEWARE_COVERAGE=true mocha --check-leaks -R mocha-lcov-reporter -r ./test/common.js -u bdd ./test/lib/*.js | ./node_modules/coveralls/bin/coveralls.js"},"devDependencies":{"chai":"*","coveralls":"*","jscoverage":"*","jshint":"*","mocha":"*","mocha-lcov-reporter":"*","mongoose":"~3.6.11"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"repository":{"type":"git","url":"git@github.com:PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.8.0"},"_id":"mongoose-middleware@0.2.2","dist":{"shasum":"dcb109e42f3e80de0eca5d4baa42ebcf11b623ed","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.2.tgz","integrity":"sha512-cdBAzAUFyykjbEXyJE8jlY8zYZJXjWe5pA9W0040FsA+rbW61k0tvGHtE5CE5kQEBjvOQd5s/8scvkWslG0JDg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHHxN+5KgCR2AVSK8UhDUXkw56vI88FUQ5pHm46Ih87oAiEA42xtEq5Raj7a8GpDQMHsl2jt18rSbRzCWWvS/HnLRPo="}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"directories":{}},"0.2.3":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.3","scripts":{"pretest":"rm -rf lib-cov ; jshint lib/*.js ; jscoverage lib lib-cov","test":"mocha --check-leaks -R spec -r ./test/common.js -u bdd ./test/lib/*.js","posttest":"rm -rf reports ; mkdir -p reports ; MONGOOSE_MIDDLEWARE_COVERAGE=true mocha --check-leaks -R mocha-lcov-reporter -r ./test/common.js -u bdd ./test/lib/*.js | ./node_modules/coveralls/bin/coveralls.js"},"devDependencies":{"chai":"*","coveralls":"*","jscoverage":"*","jshint":"*","mocha":"*","mocha-lcov-reporter":"*","mongoose":"~3.8.7"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"repository":{"type":"git","url":"git@github.com:PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.8.0"},"bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware","_id":"mongoose-middleware@0.2.3","dist":{"shasum":"6f8f326e3b14881ebedd717a6baaa1e0295f20e2","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.3.tgz","integrity":"sha512-oEBUrv3edIMGMgla+D1rgpEpq6WBfhqZIRNmKkFjFsgj/Nh3B1/hR0z4yA4BDT2WobkiBC0OoGD8HRuKX3toAg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDLPM2lKRhe2ODzibcpWuxhTUpCwTyyLHlzH3C4VwdAbQIgQxiUmhER+ScJCpEfrZA9zcKZVLiU4aCLZILzNYAyb7Y="}]},"_from":".","_npmVersion":"1.3.22","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"directories":{}},"0.2.4":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.4","scripts":{"pretest":"rm -rf lib-cov ; jshint lib/*.js ; jscoverage lib lib-cov","test":"mocha --check-leaks -R spec -r ./test/common.js -u bdd ./test/lib/*.js","posttest":"rm -rf reports ; mkdir -p reports ; MONGOOSE_MIDDLEWARE_COVERAGE=true mocha --check-leaks -R mocha-lcov-reporter -r ./test/common.js -u bdd ./test/lib/*.js | ./node_modules/coveralls/bin/coveralls.js"},"devDependencies":{"chai":"*","coveralls":"*","jscoverage":"*","jshint":"*","mocha":"*","mocha-lcov-reporter":"*","mongoose":"~3.8.7"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"repository":{"type":"git","url":"git@github.com:PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.8.0"},"bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware","_id":"mongoose-middleware@0.2.4","dist":{"shasum":"d2021b1fd057d3aaf07dbe217b619eb6fc8d70a6","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.4.tgz","integrity":"sha512-tilgLsDKrIWdu6uoyS4zy3R+gZ+nFm3H0shC7+puf9YqQu9bKMu4U1UsK2RIiIX4IQ6x4YtBlB/xohUbPAx1jA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCinmo6ZqKN0swhKnrcdV9td3RVjjvicUsj0WvJdzewKAIgAYVnPQ/XBHN8E9hqobBpd1Ua88SesT8gg3mp+3gibVc="}]},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"directories":{}},"0.2.5":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.5","scripts":{"pretest":"rm -rf lib-cov ; jshint lib/*.js ; jscoverage lib lib-cov","test":"mocha --check-leaks -R spec -r ./test/common.js -u bdd ./test/lib/*.js","posttest":"rm -rf reports ; mkdir -p reports ; MONGOOSE_MIDDLEWARE_COVERAGE=true mocha --check-leaks -R mocha-lcov-reporter -r ./test/common.js -u bdd ./test/lib/*.js | ./node_modules/coveralls/bin/coveralls.js"},"devDependencies":{"chai":"*","coveralls":"*","jscoverage":"*","jshint":"*","mocha":"*","mocha-lcov-reporter":"*","mongoose":"~3.8.7"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"repository":{"type":"git","url":"git@github.com:PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.8.0"},"bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware","_id":"mongoose-middleware@0.2.5","dist":{"shasum":"22fdc5503f09b071415c9b6917f423303b4e69ea","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.5.tgz","integrity":"sha512-CSty3rRqZUx6bOo4PduIYYEmjZ8yUymvF/sERXKDLo/Q/nV3Wu0AKuLfhms5s7yVGWt3m/UE4O7/1tsHtGVebg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIExwMr0zMc2mbpbayUrw9gtHSStz2cwkmvuINNc//HTUAiAXpD1niC4Yt+H3UFvAB2L14+wNInLAH60plMTpcPm/vg=="}]},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"directories":{}},"0.2.6":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.6","scripts":{"pretest":"rm -rf lib-cov ; jshint lib/*.js ; jscoverage lib lib-cov","test":"mocha --check-leaks -R spec -r ./test/common.js -u bdd ./test/lib/*.js","posttest":"rm -rf reports ; mkdir -p reports ; MONGOOSE_MIDDLEWARE_COVERAGE=true mocha --check-leaks -R mocha-lcov-reporter -r ./test/common.js -u bdd ./test/lib/*.js | ./node_modules/coveralls/bin/coveralls.js"},"devDependencies":{"chai":"*","coveralls":"*","jscoverage":"*","jshint":"*","mocha":"*","mocha-lcov-reporter":"*","mongoose":"~3.8.7"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"repository":{"type":"git","url":"git@github.com:PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.8.0"},"bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware","_id":"mongoose-middleware@0.2.6","dist":{"shasum":"dd0988924ab34241dda2cc0fdd76f419c5b251fc","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.6.tgz","integrity":"sha512-nEM7z/eAN3FcGMAnze9AvVtsgpRBlQrHT3sUJ9qRhvM2w1rU1xOTwmXfsgnI7WObiPGjdzirFBDSEnfsMYE+wg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFGYAA5uv5eUGkgn8swoQ9R4lXgq04tIgcqBVkq6XIiyAiBpVRKS9FkECmHAdeEsCG1afTHRYDFAdA0sTsZb3GyZ5g=="}]},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"directories":{}},"0.2.7":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.7","scripts":{"pretest":"rm -rf lib-cov ; jshint lib/*.js ; jscoverage lib lib-cov","test":"mocha --check-leaks -R spec -r ./test/common.js -u bdd ./test/lib/*.js","posttest":"rm -rf reports ; mkdir -p reports ; MONGOOSE_MIDDLEWARE_COVERAGE=true mocha --check-leaks -R mocha-lcov-reporter -r ./test/common.js -u bdd ./test/lib/*.js | ./node_modules/coveralls/bin/coveralls.js"},"devDependencies":{"chai":"*","coveralls":"*","jscoverage":"*","jshint":"*","mocha":"*","mocha-lcov-reporter":"*","mongoose":"~3.8.7"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"repository":{"type":"git","url":"git@github.com:PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.8.0"},"bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware","_id":"mongoose-middleware@0.2.7","dist":{"shasum":"6d5490c7c5758f312feda1539b7357463dc9eb4f","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.7.tgz","integrity":"sha512-bs9KmMhb2aV4/rGOFk78whPV6FZKknoDZRH/jp6ukexs22eGoQKvRWFH6xIBgCwt/e8n77r+skPgrGKo5do7ew==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDS+VQ+hmpn3ve9rU4vkg2OM6aC86Xt4JA403JT94uFqAiBAvaVQp8K3s+eactO2FMvCPnEHDDUpPh0VDwkWlTXQgQ=="}]},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"directories":{}},"0.2.8":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.8","scripts":{"pretest":"rm -rf lib-cov ; jshint lib/*.js ; jscoverage lib lib-cov","test":"mocha --check-leaks -R spec -r ./test/common.js -u bdd ./test/lib/*.js","posttest":"rm -rf reports ; mkdir -p reports ; MONGOOSE_MIDDLEWARE_COVERAGE=true mocha --check-leaks -R mocha-lcov-reporter -r ./test/common.js -u bdd ./test/lib/*.js | ./node_modules/coveralls/bin/coveralls.js"},"devDependencies":{"chai":"*","coveralls":"*","jscoverage":"*","jshint":"*","mocha":"*","mocha-lcov-reporter":"*","mongoose":"~3.8.7"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"repository":{"type":"git","url":"git@github.com:PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.8.0"},"gitHead":"5c52c676db5bd7ec323a7a622f0a3eae75218f55","bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware","_id":"mongoose-middleware@0.2.8","_shasum":"36c57d3975edddb512673595beffbaf55d533914","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"dist":{"shasum":"36c57d3975edddb512673595beffbaf55d533914","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.8.tgz","integrity":"sha512-gR0M7t4ELCRCbW+h3JftS+T1fXkJX8yZUw0y2P2STE3M5bW2wpP0/PE8uwjSehw+PilPGDgZjrwCBkIS2TJLaQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICnGDQj7JFfv/DjR+8VlBWS/5JrI4pxn3tuJctYAyIFPAiAooDYQb/92FcX4+eIQ2APLeeXTlVjG+iuw9F9r6I1wnA=="}]},"directories":{}},"0.2.9":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.9","scripts":{"pretest":"rm -rf lib-cov ; jshint lib/*.js ; jscoverage lib lib-cov","test":"mocha --check-leaks -R spec -r ./test/common.js -u bdd ./test/lib/*.js","posttest":"rm -rf reports ; mkdir -p reports ; MONGOOSE_MIDDLEWARE_COVERAGE=true mocha --check-leaks -R mocha-lcov-reporter -r ./test/common.js -u bdd ./test/lib/*.js | ./node_modules/coveralls/bin/coveralls.js"},"devDependencies":{"chai":"*","coveralls":"*","jscoverage":"*","jshint":"*","mocha":"*","mocha-lcov-reporter":"*","mongoose":"~3.8.7"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"repository":{"type":"git","url":"git@github.com:PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.8.0"},"gitHead":"479b9bd4e3999579ee6eba14571f82a7f25cd02c","bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware","_id":"mongoose-middleware@0.2.9","_shasum":"c27035986c331c4ea11a4b0bea61c3b3db168223","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"dist":{"shasum":"c27035986c331c4ea11a4b0bea61c3b3db168223","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.9.tgz","integrity":"sha512-BtUQIFTk0yAJ8XmVsqZ8tdnykbsdk6LwlCBw2KlA9cS2biEVA560eCoVxAKUUtEUrARWv7iNoRcfMq1KvOL+rA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDMrAs9YuW4VmJhX4jH4L92nqw0vWPMTCiKsn1arHwa+AiEAwXphurPn0JPXGL3AzUnaARVmYtr1FZc/gnlqYqulvUY="}]},"directories":{}},"0.2.10":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.10","scripts":{"test":"gulp test-all"},"devDependencies":{"chai":"^1.10.0","del":"^1.1.1","gulp":"^3.8.10","gulp-coveralls":"^0.1.3","gulp-istanbul":"^0.5.0","gulp-jshint":"^1.9.0","gulp-mocha":"^2.0.0","jshint-stylish":"^1.0.0","mongoose":"~3.8.21","run-sequence":"^1.0.2"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"repository":{"type":"git","url":"git@github.com:PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.10.0"},"gitHead":"9110d297122f4e4224c68921732307c1205e6424","bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware","_id":"mongoose-middleware@0.2.10","_shasum":"ed7b9369316f71a7061126f8426151c4b0ae20fa","_from":".","_npmVersion":"2.1.6","_nodeVersion":"0.10.33","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"dist":{"shasum":"ed7b9369316f71a7061126f8426151c4b0ae20fa","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.10.tgz","integrity":"sha512-eoYaRRCYI0EuaCQVD0MHWsfTsMkb/HMdeSKs/LFHdjUS40wx4Yd0zEWPBn/EoAAC+dYmva/RMXge2iZ6ufEH1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGkb5EflmQdyL9leJk9dQAqr1tho0X09dDFzj//h5O2yAiEAxcO4iiaQovvN4+vnMXLXmroGkArCKDA4LVg6jvXr5SY="}]},"directories":{}},"0.2.11":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.11","scripts":{"test":"gulp test-all"},"devDependencies":{"chai":"^1.10.0","del":"^1.1.1","gulp":"^3.8.10","gulp-coveralls":"^0.1.3","gulp-istanbul":"^0.5.0","gulp-jshint":"^1.9.0","gulp-mocha":"^2.0.0","jshint-stylish":"^1.0.0","mongoose":"~3.8.21","run-sequence":"^1.0.2"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"repository":{"type":"git","url":"git@github.com:PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.10.0"},"gitHead":"acfa5286492a07bab5fbbaf3056c403b2e911302","bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware","_id":"mongoose-middleware@0.2.11","_shasum":"81575d8ea432fb67b9e2a4f474f2aee396634a84","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"dist":{"shasum":"81575d8ea432fb67b9e2a4f474f2aee396634a84","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.11.tgz","integrity":"sha512-eBD+eRC/FwBZn4gaOz51HbWBcbowDBL4svYM3AGcfosS+W7XK5Q44C8KvPHIDfp/NXRc3tKGp1ONS479FLZrlQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7D8V93C1XEB9N9hxj6bendJyyewavz4O9DGBUsqqxHwIhAKEw/rq4NlDJ52uSxpC8PJhWn3B5ksJzaOdF8A0DPIiv"}]},"directories":{}},"0.2.12":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.12","scripts":{"test":"gulp test-all"},"devDependencies":{"chai":"^1.10.0","del":"^1.1.1","gulp":"^3.8.10","gulp-coveralls":"^0.1.3","gulp-istanbul":"^0.5.0","gulp-jshint":"^1.9.0","gulp-mocha":"^2.0.0","jshint-stylish":"^1.0.0","mongoose":"~3.8.21","run-sequence":"^1.0.2"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"repository":{"type":"git","url":"git@github.com:PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.10.0"},"gitHead":"606c38ce21400d527bcb68aa1567687c03b65048","bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware","_id":"mongoose-middleware@0.2.12","_shasum":"25ee5d5f6494cda4d39bbc367c0a94a00c25fcda","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"dist":{"shasum":"25ee5d5f6494cda4d39bbc367c0a94a00c25fcda","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.12.tgz","integrity":"sha512-ajGrIzSCtmVgRtujRr7C1Kxhgmhi1qDHxlSWWqmDWsBXeqa1TjIeAScx/cYsh164ls40urNGCYaHD8KxKAPwgw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAz+FMntLiIPen1l44lnvWL07/H/s8o6WsXxylb7gLHJAiB4aAJlN1GnFtx0Bw/O7ZV/0Jp1UxdiYt8rfpOxSK5IGA=="}]},"directories":{}},"0.2.13":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.13","scripts":{"test":"gulp test-all"},"devDependencies":{"chai":"^1.10.0","del":"^1.1.1","gulp":"^3.8.10","gulp-coveralls":"^0.1.3","gulp-istanbul":"^0.5.0","gulp-jshint":"^1.9.0","gulp-mocha":"^2.0.0","jshint-stylish":"^1.0.0","mongoose":"~3.8.21","run-sequence":"^1.0.2"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"repository":{"type":"git","url":"git+ssh://git@github.com/PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.10.0"},"gitHead":"e4692a3a7cf93e3e2117ee0d47b1112810048114","bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware#readme","_id":"mongoose-middleware@0.2.13","_shasum":"aa11347242d91976e456f6f9f38c87b973f23096","_from":".","_npmVersion":"3.3.12","_nodeVersion":"0.12.7","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"dist":{"shasum":"aa11347242d91976e456f6f9f38c87b973f23096","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.13.tgz","integrity":"sha512-q/WxJYRPb1hRfBH/soqMihULYziZ0OfgFLwB3PmmzPoxPfqig/6aV3CVSL//puIrP/0gOkqIt5xby6A8L58JjA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEQHQK42olhYRdHfM7JjRiNHmqysTnKk2dPbw3C3BDfcAiEA+xu/lxRKAK9y27+N+Cjtu/beilxuwuWTRSsphJrBQ6Y="}]},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"directories":{}},"0.2.14":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.14","scripts":{"test":"gulp test-all"},"devDependencies":{"chai":"^1.10.0","del":"^1.1.1","gulp":"^3.8.10","gulp-coveralls":"^0.1.3","gulp-istanbul":"^0.5.0","gulp-jshint":"^1.9.0","gulp-mocha":"^2.0.0","jshint-stylish":"^1.0.0","mongoose":"~3.8.21","run-sequence":"^1.0.2"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"repository":{"type":"git","url":"git+ssh://git@github.com/PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.10.0"},"gitHead":"5d9afb9b437deabbfc6bdc4c1ae9f6bc5642746a","bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware#readme","_id":"mongoose-middleware@0.2.14","_shasum":"abf143db153dffc88f5fbff29c21d1345df14337","_from":".","_npmVersion":"3.5.3","_nodeVersion":"4.2.1","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"dist":{"shasum":"abf143db153dffc88f5fbff29c21d1345df14337","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.14.tgz","integrity":"sha512-ZMm/eVEx0YRbo0qvOwYD3lAYqqQg7pdAUrNGJdBmiEp4K+wqh3l/3U2hre4lavx+owJKpSs1sh3p/zefwYCPGA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGlCMEPt6ZhiylMxLq3Ddmad0o5coSuc6rvsyj278eJ9AiEAuhXf1R/8/kGEYI6OC+1zA3lKXIDDQ5h2LFniKKQl3nE="}]},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/mongoose-middleware-0.2.14.tgz_1456165384694_0.4874219468329102"},"directories":{}},"0.2.15":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.15","scripts":{"test":"gulp test-all"},"devDependencies":{"chai":"^3.5.0","del":"^2.2.0","gulp":"^3.9.1","gulp-coveralls":"^0.1.4","gulp-istanbul":"^0.10.3","gulp-jshint":"^2.0.0","gulp-mocha":"^2.2.0","jshint":"^2.9.1","jshint-stylish":"^2.1.0","mongoose":"^4.4.6","run-sequence":"^1.1.5"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.10.0"},"gitHead":"76f2849cd0e9ce9508ed14dac415ffb526c8f51a","bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware#readme","_id":"mongoose-middleware@0.2.15","_shasum":"f9e468de599e189c4b93f5968e269231dee8f21c","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"dist":{"shasum":"f9e468de599e189c4b93f5968e269231dee8f21c","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.15.tgz","integrity":"sha512-50Evoitwq/lA7eP9g/5+/uBrJJp2Lv7oVs/2KQN6xxBKxx0aIXNraN9AsJ8i4OoMlhPglDDnpL4gQDOfQ29kDA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfw598zWzZD0zKFPunNmJcPuk92pZLOZilpgXJF1aT/QIgBP3giQ0KsDo8dqx4zgEU15sbaDIDGENnRAuQa3jhnoM="}]},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/mongoose-middleware-0.2.15.tgz_1457125895294_0.7015633266419172"},"directories":{}},"0.2.16":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.16","scripts":{"test":"gulp test-all"},"devDependencies":{"chai":"^3.5.0","del":"^2.2.0","gulp":"^3.9.1","gulp-coveralls":"^0.1.4","gulp-istanbul":"^0.10.3","gulp-jshint":"^2.0.0","gulp-mocha":"^2.2.0","jshint":"^2.9.1","jshint-stylish":"^2.1.0","mongoose":"^4.4.6","run-sequence":"^1.1.5"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.10.0"},"gitHead":"890f0208f2b4170d254c46f5a3dfda841a4bb268","bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware#readme","_id":"mongoose-middleware@0.2.16","_shasum":"2ed3bca0fdbdd8255e46862da8304c011a09f529","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"dist":{"shasum":"2ed3bca0fdbdd8255e46862da8304c011a09f529","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.16.tgz","integrity":"sha512-wk7tdYRCDLdZ8Wik3XWadS17q/+Egt5UuSJ0uT8zcDwXDsi9nAjs1VSnKLijU6EDzqP79LAbAL9nr8oxg0W/lg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFYkv2adYk7JZD2fL6HzO9rNLhckR66c3PBouizfOcR4AiEArsupFQPs8K5hAD5TsHCltjagyemNhaby1C9GjlspXyo="}]},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/mongoose-middleware-0.2.16.tgz_1457478842467_0.5101722504477948"},"directories":{}},"0.2.17":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.17","scripts":{"test":"gulp test-all"},"devDependencies":{"chai":"^3.5.0","del":"^2.2.0","gulp":"^3.9.1","gulp-coveralls":"^0.1.4","gulp-istanbul":"^0.10.3","gulp-jshint":"^2.0.0","gulp-mocha":"^2.2.0","jshint":"^2.9.1","jshint-stylish":"^2.1.0","mongoose":"^4.4.6","run-sequence":"^1.1.5"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.10.0"},"gitHead":"3295fda3d15113753166c88d24ee2ca30bf9eb90","bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware#readme","_id":"mongoose-middleware@0.2.17","_shasum":"ef045ced411f035e69f1114ea94b35a435700db1","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"dist":{"shasum":"ef045ced411f035e69f1114ea94b35a435700db1","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.17.tgz","integrity":"sha512-7FliTMMc/ARuC2zhoeX6zh/aMa1GYMS+bBCqBhIiqIiI71i9CAWoLDRobVo19GEn/PqwgwBTYe9QeIsmo1c2bg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICFkqTNi6KF1YJdawnGw9ug8PpUgf0sCHgQB8B7xWGyTAiAhK0gd/jGh3avO4pNEL1fvBJM60HrdkpnSSG/Wba5GxA=="}]},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/mongoose-middleware-0.2.17.tgz_1457482772087_0.08538645366206765"},"directories":{}},"0.2.18":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.18","scripts":{"test":"gulp test-all"},"devDependencies":{"chai":"^3.5.0","del":"^2.2.0","gulp":"^3.9.1","gulp-coveralls":"^0.1.4","gulp-istanbul":"^0.10.3","gulp-jshint":"^2.0.0","gulp-mocha":"^2.2.0","jshint":"^2.9.1","jshint-stylish":"^2.1.0","mongoose":"^4.4.6","run-sequence":"^1.1.5"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.10.0"},"gitHead":"56c08970e6036d6efa82bf9700cc95cfc8f71de3","bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware#readme","_id":"mongoose-middleware@0.2.18","_shasum":"77bf9d247a62099632c4a13a725d448b4acbe651","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"dist":{"shasum":"77bf9d247a62099632c4a13a725d448b4acbe651","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.18.tgz","integrity":"sha512-4Nx/fwFH1xLYcSFTb+Bu4z0AouTwfZUqAAiRVToPbwkLgpb4rOb6xd0isWW96m5p8iI2uUFFnoOKUbhY7I7YQg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaG2HhQNtK4p+94ep/j5AQGnlasJguGKI9spRfcx5OawIhAPO6yUHZZQfOme9bc7A/pqwbPcZ9gZ6Bwt3m57DmFfCV"}]},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"},{"name":"rmomii","email":"robibobi@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/mongoose-middleware-0.2.18.tgz_1460650947817_0.3050772489514202"},"directories":{}},"0.2.19":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.19","scripts":{"test":"gulp test-all"},"devDependencies":{"chai":"^3.5.0","del":"^2.2.0","gulp":"^3.9.1","gulp-coveralls":"^0.1.4","gulp-istanbul":"^0.10.3","gulp-jshint":"^2.0.0","gulp-mocha":"^2.2.0","jshint":"^2.9.1","jshint-stylish":"^2.1.0","mongoose":"^4.4.6","run-sequence":"^1.1.5"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.10.0"},"gitHead":"00c963a9f56306569d266704e02769b7f6f22da5","bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware#readme","_id":"mongoose-middleware@0.2.19","_shasum":"fc5cdf2f759628c65a60d9f9b1712280bf333cc8","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"dist":{"shasum":"fc5cdf2f759628c65a60d9f9b1712280bf333cc8","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.19.tgz","integrity":"sha512-sWGVj/Ujd5V4zIeK2WodnALesg+7Wte4H+lrRt4ISF49I1mmx9R31dXtLEWTZqdzSkmaSZyhvcyCRLtcPP2exg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDt95Scr1HAUF0DO/IX012m2gRlZB7WwkwdgSGeV+XgDAiEA+Hx83g4RQLE7xILx3RtHJEuwk9AzrCtgYRTpAg15uBY="}]},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"},{"name":"rmomii","email":"robibobi@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/mongoose-middleware-0.2.19.tgz_1461781724041_0.5221263505518436"},"directories":{}},"0.2.20":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.2.20","scripts":{"test":"gulp test-all"},"devDependencies":{"chai":"^3.5.0","del":"^2.2.0","gulp":"^3.9.1","gulp-coveralls":"^0.1.4","gulp-istanbul":"^0.10.3","gulp-jshint":"^2.0.0","gulp-mocha":"^2.2.0","jshint":"^2.9.1","jshint-stylish":"^2.1.0","mongoose":"^4.4.6","run-sequence":"^1.1.5"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=0.10.0"},"gitHead":"0b4fb2e7004d0f8de4e4c944c995d6d730ded123","bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware#readme","_id":"mongoose-middleware@0.2.20","_shasum":"d248660d72b98be606cdaea69b8a06a8fc511ae2","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.7.0","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"dist":{"shasum":"d248660d72b98be606cdaea69b8a06a8fc511ae2","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.2.20.tgz","integrity":"sha512-mPy9s5J4m9ZVqTpSg59WAb/LawYSZjqlpkPwvE4xsinim5UhJPxr/HNAYUJ9n3jaD6bApipbRQZ34rPAUWHPbA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDZvSY8AIfrp8hF4w7tbqvfFbJ4YZx6eI8Acr8vf44tkAiACzY2VOk6zj9c5JQWdX/J5SnrG/uG5xsvxZ2botIihEg=="}]},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"},{"name":"rmomii","email":"robibobi@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/mongoose-middleware-0.2.20.tgz_1476885821829_0.33186299004592"},"directories":{}},"0.3.0":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"0.3.0","scripts":{"test":"gulp test-all"},"devDependencies":{"chai":"^3.5.0","del":"^2.2.0","gulp":"^3.9.1","gulp-coveralls":"^0.1.4","gulp-istanbul":"^0.10.3","gulp-jshint":"^2.0.0","gulp-mocha":"^2.2.0","jshint":"^2.9.1","jshint-stylish":"^2.1.0","mongoose":"^4.6.4","run-sequence":"^1.1.5"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=4.0.0"},"gitHead":"9ced9a6ec6761344786cd395522826e1501cf303","bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware#readme","_id":"mongoose-middleware@0.3.0","_shasum":"baa526c773dda1ebaa0a802fb90bec77d200026c","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.7.0","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"dist":{"shasum":"baa526c773dda1ebaa0a802fb90bec77d200026c","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-0.3.0.tgz","integrity":"sha512-HHoxxLsZjrXJpJOoZsTzALCnDZHXmqKyxT44kV4DA0tp9xEbwg3ldtY92YBMTVmgmqI6+/oP1VFJNNZLPRFMig==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBxANcZ4ypb/KK+gNZeW/5MjniLbCbzVXE3jSH5RsqpaAiBkZc4Zh2l6LhKT4HJenX76JrCnSQwp4Xb/PC3QqiI0GQ=="}]},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"},{"name":"rmomii","email":"robibobi@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/mongoose-middleware-0.3.0.tgz_1476899687558_0.7616298107896"},"directories":{}},"1.0.0":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"1.0.0","scripts":{"test":"gulp test-all"},"devDependencies":{"chai":"^3.5.0","del":"^2.2.0","gulp":"^3.9.1","gulp-coveralls":"^0.1.4","gulp-istanbul":"^0.10.3","gulp-jshint":"^2.0.0","gulp-mocha":"^2.2.0","jshint":"^2.9.1","jshint-stylish":"^2.1.0","mongoose":"^4.6.4","run-sequence":"^1.1.5"},"keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/PlayNetwork/mongoose-middleware.git"},"main":"lib","engines":{"node":">=4.0.0"},"gitHead":"f30d9eea2488c2f71c08c0191608ea72ce90b8c1","bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware#readme","_id":"mongoose-middleware@1.0.0","_shasum":"6b4d6bbd685c14f0a4023e5e55d743751eed26f8","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"dist":{"shasum":"6b4d6bbd685c14f0a4023e5e55d743751eed26f8","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-1.0.0.tgz","integrity":"sha512-2WOHw1B7chKZMOa+T6TXBkmQkQgieQh5w5EBZZSuB52lWXw/jl1CJWE48N0CX0EM3uwZKBsZot/4EqX9ntb65w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGxc1flxgsKSnMf8ofurH/eqgFY9o/Q2wr1UaH7G63tkAiEA0HNGNaBEHuuQAqUyUeC24lOm3J2GG6KEb2D3dZoxYTw="}]},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"},{"name":"rmomii","email":"robibobi@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/mongoose-middleware-1.0.0.tgz_1482255819892_0.3599810185842216"},"directories":{}},"2.0.0":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"2.0.0","keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/PlayNetwork/mongoose-middleware.git"},"main":"dist","scripts":{"lint":"gulp lint","posttest":"nyc report --reporter=text-lcov | coveralls","prepare":"gulp build","pretest":"gulp clean && gulp lint","test":"NODE_ENV=test nyc mocha ./test/src","test:unit":"NODE_ENV=test nyc mocha ./test/src"},"nyc":{"all":true,"include":["src"],"instrument":false,"report-dir":"./reports","reporter":["lcov","text","text-summary"],"require":["@babel/register"],"sourceMap":false},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.3.4","@babel/plugin-transform-runtime":"^7.3.4","@babel/preset-env":"^7.3.4","@babel/register":"^7.0.0","babel-eslint":"^10.0.1","babel-plugin-istanbul":"^5.1.1","chai":"^4.2.0","coveralls":"^3.0.3","eslint-plugin-babel":"^5.3.0","gulp":"^4.0.0","gulp-babel":"^8.0.0","gulp-clean":"^0.4.0","gulp-eslint":"^5.0.0","gulp-sourcemaps":"^2.6.5","mocha":"^6.0.2","mongoose":"^5.4.19","nyc":"^13.3.0"},"dependencies":{"@babel/runtime-corejs2":"^7.3.4"},"gitHead":"5fab2255f117cbbd5599785e14c7ee1c0c5996f2","bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware#readme","_id":"mongoose-middleware@2.0.0","_nodeVersion":"10.14.2","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Sym/YBidpF1BUIwVJbHlOa6NxalKIoH4py685HDIbdeMp2W+GKdOC8X3pq2B/I8MqgHSdoqGHd9g9KrWqJH78A==","shasum":"d810ad34a621bbe4606432f3269b4a5b213a1e4d","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-2.0.0.tgz","fileCount":19,"unpackedSize":67166,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcisjVCRA9TVsSAnZWagAAnS8P/iPajAmfHeoV0PKif8rA\nX9UQef8+dCkaCK6fndWonrAynve/3/jH96BFGqUlEHMFNosbENmXUHds9pO6\n0M+r2CP9anlQUf5GYUbGHLZj+vwYKYEg3LEAaCPYuct1hPyIFZ9OiXybH1SN\nuJGBvkkbXR//jEAsNj9YwYUvwOUR0+5tQISYM3oFpgNeZ8GiD7pnUlsz7HBV\nbpuJ9TKAWIKN90qBUE8+fhyKuPuBRMeV3r2flLI6Qbl39OHFQw4s0eMzC7YP\nS8N6eEc/6RxjLilfHMrLbaYgNBlxjqSHWAMXPL6SpsLfKFJ2C4XMXdKFXYwj\ndoZV+rddtBwYkcScqfc5n/j8K+e5nxUqwZQ1TkS363QwWIRggjyNYEMPWhoC\n326dGRMj1JZHFC4eimaSvAhXcLZlMVzAsTkMQuWtL/d38eJoxAmjmGrfD5Q4\neqw6ql9iz3NioF5bgA6TWsymehS6TUrEBbn6uvDtY164a/cVBbPohVXRfH2U\n44VZHkJBJzp+bqe+MYIkzji1boyFvabiEIxzg/BB2DTFFAV16eXSx8ipxPl8\nBeJAPc9VM++ZBT7i/2GjUCosBnxgpMzB/oDypPrDbCVZhnIs/2d1qI9NIDmO\npxZH5f8LpnNQ9AwfDq8o2mQBLOQKE+k/L6RBRqBLvP0BctezrApayHLmKoW3\nvCrx\r\n=tZDi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCjWTnrqb0n/H2pns2iD88Sfk0A+lN2fThd3wFsULJO5QIgJVmbwV2iM8F2DB7Wj8IxwJcqfOcVvdXoVpEJgfKf9ac="}]},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"},{"name":"rmomii","email":"robibobi@gmail.com"}],"_npmUser":{"name":"brozeph","email":"joshua.thomas@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mongoose-middleware_2.0.0_1552599252594_0.11519280750119343"},"_hasShrinkwrap":false},"2.0.1":{"name":"mongoose-middleware","description":"Middleware for mongoose that makes filtering, sorting, pagination and projection chainable and simple to apply","version":"2.0.1","keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/PlayNetwork/mongoose-middleware.git"},"main":"dist","scripts":{"lint":"gulp lint","posttest":"nyc report --reporter=text-lcov | coveralls","prepare":"gulp build","pretest":"gulp clean && gulp lint","test":"NODE_ENV=test nyc mocha ./test/src","test:unit":"NODE_ENV=test nyc mocha ./test/src"},"nyc":{"all":true,"include":["src"],"instrument":false,"report-dir":"./reports","reporter":["lcov","text","text-summary"],"require":["@babel/register"],"sourceMap":false},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.3.4","@babel/plugin-transform-runtime":"^7.3.4","@babel/preset-env":"^7.3.4","@babel/register":"^7.0.0","babel-eslint":"^10.0.1","babel-plugin-istanbul":"^5.1.1","chai":"^4.2.0","coveralls":"^3.0.3","eslint-plugin-babel":"^5.3.0","gulp":"^4.0.0","gulp-babel":"^8.0.0","gulp-clean":"^0.4.0","gulp-eslint":"^5.0.0","gulp-sourcemaps":"^2.6.5","mocha":"^6.0.2","mongoose":"^5.4.19","nyc":"^13.3.0"},"dependencies":{"@babel/runtime-corejs2":"^7.3.4"},"gitHead":"90720d4499ea64fd21ced51643a77f76ee7eae24","bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"homepage":"https://github.com/PlayNetwork/mongoose-middleware#readme","_id":"mongoose-middleware@2.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.1","_npmUser":{"name":"akobyshcha","email":"akobyshcha@theoctavegroup.com"},"dist":{"integrity":"sha512-s+lQmlXk3a4fro7Q4sjZyt+Rn0JKSnGdGk67K9xoNqYudZ87chAGk/m/sgPwPLwW3ackTwjWqoIPJQOB2RJ/rQ==","shasum":"5c3d46cd085dda4062ae3d7b2aadf5fee11b2b9f","tarball":"https://registry.npmjs.org/mongoose-middleware/-/mongoose-middleware-2.0.1.tgz","fileCount":19,"unpackedSize":68326,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKgGwCRA9TVsSAnZWagAAxZ0P/3qQbSUA3LLweHqeUXLv\nUIJ/ZXcreEmaFH4Ui6GAJ9suSf3O9UQwc35H3zBh2Ns6yba3sYfnDzF0Qyae\nxOwM7CVCdKpuI5K46MddcMTxObQKdHtoFi4ZNjdaaQ8lX5j4Hr1zyt/qs+Vu\nMqOOftf1Pv588jiNL+ij9G0G8eCq5fhoe/44uzhkc9j5lvD6f6nj9v8XmgYI\nkXD9yZBi1co4KQwYvAGEodsPL5npYyZ9pA6IW5PNP+0dJbFDri52QEpuO4jV\nQ7KoHr6xQXiEzCq/zC6YMzjq4WdWxg5lt8Ud5541b1b3nS8bC6AbhtEftHYA\nZ1J4zz4twSvF1aifm5ibJIYlXkex05zLIYQdvngAtkhfbN8k24v1efiwwUGA\n2sXq1NM04LgrE+fDVkKXJc4PYkxNa45Fg2O+1qbBwCEg8g4fM1vZ4t5kDy3E\nXkUxK2wzndpSaS/s5wEIzPOy4QrV4BYm0QUBA5KrfpmoWkEtVzuV3Nrpa/aZ\nPL9+sNRkzfzPc7UjJTrsLJLuVbvcfvbBpVBJd0Du0jQeCW+0y58OF/oT2ag2\nCwOAhBKnWuF83UW7XLtarRsbpTdyY73n66jr7l4PhlJfYVaVY/ZNvsbtVDI1\nj3W/YQ8vj850/GiY8wbyCR0Igzv7KyR4hulYIm6k88pSqoZG6hDqJHl0/YB+\n6ndM\r\n=vibF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhwv4AiM9SvQy4vcXsmcyjM956nOAYEg1azAO2azKPHAIgGyv0GBVX0HpfN/ri0htaHJupdTpF428IurNDYPPbuPg="}]},"maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"},{"name":"rmomii","email":"robibobi@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mongoose-middleware_2.0.1_1579811248126_0.745684721002835"},"_hasShrinkwrap":false}},"readme":"# Mongoose Middleware\n\n[![Build Status](https://secure.travis-ci.org/PlayNetwork/mongoose-middleware.png?branch=master)](http://travis-ci.org/PlayNetwork/mongoose-middleware?branch=master) [![Coverage Status](https://coveralls.io/repos/PlayNetwork/mongoose-middleware/badge.png)](https://coveralls.io/r/PlayNetwork/mongoose-middleware)\n\n## Features\n\n* Pagination (start, count and total matching)\n* Filtering (mandatory matches, optional matches and keyword search)\n* Sorting (ascending and descending)\n* Projection (response field filtering)\n* Promise support\n\n## Install\n\n```javascript\nnpm install mongoose-middleware\n```\n\nThen, simply require the library and pass in the instance of the `require('mongoose')` statement to the initialize method as follows:\n\n```javascript\nvar mongoose = require('mongoose');\n\nrequire('mongoose-middleware').initialize(mongoose);\n```\n\nOptionally configure max documents for pagination:\n\n```javascript\nvar mongoose = require('mongoose');\n\nrequire('mongoose-middleware')\n  .initialize({\n    maxDocs : 1000\n  }, mongoose);\n```\n\n## Overview\n\nThis project aims to make basic searching, sorting, filtering and projection tasks against documents stored in MongoDB trivial via Mongoose middleware. The middle exposes a set of Mongoose Query object chainable methods for ease and simplicity of use.\n\nThe following example shows usage of field projections, mandatory and optional search filters, sorting and pagination.\n\n```javascript\nvar\n  mongoose = require('mongoose'),\n  Schema = mongoose.Schema,\n  KittehModel = mongoose.model(\n    'kittehs',\n    new Schema({\n      birthday : { type : Date, default : Date.now },\n      features : {\n        color : String,\n        isFurreh : Boolean\n      },\n      home : String,\n      name : String,\n      peePatches : [String]\n    })\n  );\n\nrequire('mongoose-middleware').initialize(mongoose);\n\n/*\n  Retrieve the name, home and features.color of kittehs that live in Seattle,\n  that are named \"Hamish\" and that are brindle, black or white in color and born\n  prior to January 1st, 2014. The results should be sorted by birthday in\n  descending order and name in ascending order.\n*/\nvar options = {\n  filters : {\n    field : ['name', 'home', 'features.color'],\n    mandatory : {\n      contains : {\n        home : 'seattle'\n      },\n      exact : {\n        name : 'Hamish'\n      },\n      lessThan : {\n        birthday : new Date(2014, 1, 1)\n      }\n    },\n    optional : {\n      contains : {\n        'features.color' : ['brindle', 'black', 'white']\n      }\n    }\n  },\n  sort : ['-birthday', 'name'],\n  start : 0,\n  count : 500\n};\n\nKittehModel\n  .find()\n  .field(options)\n  .keyword(options)\n  .filter(options)\n  .order(options)\n  .page(options,\n    function (err, kittehs) {\n      if (!err) {\n        console.log('we haz kittehs!');\n        console.log(kittehs);\n      } else {\n        console.log(err);\n      }\n    });\n```\n\n### Promise Support\n\nWhen using `mongoose-middleware`, the library does not interfere with existing [Mongoose support for Promises](http://mongoosejs.com/docs/promises.html). The [`#page`](#pagination) method will return a native Promise if the `callback` argument is not specified.\n\n```javascript\nvar options = {\n  start : 0,\n  count : 500\n};\n\nKittehModel\n  .find()\n  .page(options)\n  .then((kittehs) => {\n    console.log('we haz kittehs!');\n    console.log(kittehs);\n  })\n  .catch(console.error);\n```\n\n### Results\n\nThe options submitted to the `page(options, callback)` middleware method are echoed back in the response along with the results of the query and the total count of results matching the specified filters.\n\n```javascript\n{\n  options : {\n    count : 500,\n    filters : {\n      field : ['name', 'home', 'features.color'],\n      mandatory : {\n        contains : {\n          'features.color' : ['brindle', 'black', 'white']\n        },\n        exact : {\n          name : 'Hamish'\n        }\n      },\n      optional : {\n        contains : {\n          home : 'seattle'\n        }\n      }\n    },\n    sort : ['-birthday', 'name'],\n    start : 0\n  },\n  results : [ ... ], // the first 500 brindled, black or white kittehs named Hamish in Seattle\n  total : 734\n}\n```\n\n## API\n\n### Initialization\n\nThe maxDocs property may optionally be specified on initialize to ensure no more than the specified number of documents are ever returned from a query. Please note that this does not affect the ability for the component to return the correct total count of results when using the pagination middleware function.\n\n```javascript\nvar mongoose = require('mongoose');\n\nrequire('mongoose-middleware').initialize({\n  maxDocs : 1000\n}, mongoose);\n```\n\n### Projection (Field Filters)\n\nIn order specify specific fields from a document in Mongo to be returned, the fields filter may be used.\n\n```javascript\nvar options = {\n  filters : {\n    field : ['name', 'home', 'qualities.demeanor']\n  }\n};\n\nKittehModel\n  .find()\n  .field(options)\n  .exec(function (err, results) {\n    // work with response...\n  });\n```\n\nAlternatively, a single field can be specified (not in an array):\n\n```javascript\nKittehModel\n  .find()\n  .field({ filters : { field : '_id' } })\n  .exec(callback);\n```\n\n### Filters\n\nFilters can be used in three ways: mandatory, optional and keyword searches. Additionally, for mandatory and optional searches, exact, equals, contains and startsWith string pattern matches may be used.\n\nThe following filters can be used for *mandatory*, *optional*, and *keyword* searches.\n\n* `equals` - Matches for string identity\n* `exact` - Matches the string letter for letter, but is not case sensitive\n* `contains` - Matches documents where the string exists as a substring of the field (similar to a where field like '%term%' query in a relational datastore)\n* `startsWith` - Matches documents where field begins with the string supplied (similar to a where field like 'term%' query in a relational datastore)\n* `endsWith` - Matches documents where field ends with the string supplied (similar to a where field like '%term' query in a relational datastore)\n\nThe following filters can *ONLY* be used for *mandatory* and *keyword* searches.\n* `greaterThan` (or `gt`) - Matches documents where field value is greater than supplied number or Date value in query\n* `greaterThanEqual` (or `gte`) - Matches documents where field value is greater than or equal to supplied number or Date value in query\n* `lessThan` (or `lt`) - Matches documents where field value is less than supplied number or Date value in query\n* `lessThanEqual` (or `lte`) - Matches documents where field value is less than or equal to supplied number or Date value in query\n* `notEqual` (or `ne`) - Matches documents where field value is not equal to the supplied value\n\n#### Mandatory\n\nMandatory filters require that the document matches the specified search options or they will not be returned.\n\n#### Optional\n\nOptional searches allow you to specify more than one filter that you would like to match results for. This type of search is great for cases where you need to find documents that either match \"this\" *OR* \"that\". As an example, image you are searching for cats that are either manx, siamese or tabby, you would configure the filter as follows:\n\n```javascript\nvar options = {\n  filters : {\n    optional : {\n      exact : {\n        breed : ['manx', 'siamese', 'tabby']\n      }\n    }\n  }\n};\n\nKittehModel\n  .find()\n  .filter(options)\n  .exec(function (err, results) {\n    // work with response...\n  });\n```\n\n#### Keyword\n\nKeyword searches provide a convenient way to search more than one field with a single string. Additionally, keyword filters work differently from mandatory and optional filters in that they do not support `exact`, `contains` or `startsWith`. Instead the matches look for occurrences in a similar way to `contains` but with the ability to specify multiple terms in the query.\n\nThe following query will search for documents where the name, description or knownAliases contain Heathcliff the Cat. If the name (or description and knownAliases) contains \"Cat, the Heathcliff\", \"the Cat, Heathcliff\", \"Heathcliff Cat, the\" and \"the Heathcliff Cat\", those results will also be returned.\n\n```javascript\nvar options = {\n  filters : {\n    keyword : {\n      fields : ['name', 'description', 'knownAliases'],\n      term : 'Heathcliff the Cat'\n    }\n  }\n};\n\nKittehModel\n  .find()\n  .filter(options)\n  .exec(function (err, results) {\n    // work with response...\n  });\n```\n\nIf you would like to ensure that matches of \"Heathcliff the Cat\" in that exact format are returned, simply enclose the term in quotes:\n\n```javascript\nvar options = {\n  filters : {\n    keyword : {\n      fields : ['name', 'description', 'knownAliases'],\n      term : '\"Heathcliff the Cat\"'\n    }\n  }\n};\n```\n\n### Sorting\n\nSorting, at this point, is fairly basic. All descending sorts will be applied prior to ascending sorts when specifying multiple sorts of each direction. Supports JSON API specs.\n\n#### Descending\n\n```javascript\nvar options = {\n  sort : ['-name', '-description', '-knownAliases']\n};\n\nKittehModel\n  .find()\n  .order(options)\n  .exec(function (err, results) {\n    // work with response...\n  });\n```\n\nYou may also specify a single field (not an array) as well as an object for both descending and ascending sorts:\n\n```javascript\nvar options = {\n  sort : '-name'\n};\n```\n\n```javascript\nvar options = {\n  sort : {\n    'name': -1,\n    'description': 1\n  }\n};\n```\n\n#### Ascending\n\n```javascript\nvar options = {\n  sort : ['name', 'description', 'knownAliases']\n};\n\nKittehModel\n  .find()\n  .order(options)\n  .exec(function (err, results) {\n    // work with response...\n  });\n```\n\nYou may also specify ascending and descending sorts together:\n\n```javascript\nvar options = {\n  sort : ['name', '-birthday', '-home']\n};\n```\n\n### Pagination\n\nPagination is performed by swapping the `exec()` function of Mongoose with `page()`. Pagination may be specified as follows:\n\n```javascript\nvar options = {\n  start : 0,\n  count : 100\n};\n\nKittehModel\n  .find()\n  .page(options, function (err, results) {\n    // work with response...\n  });\n```\n\nWhen using pagination, maxDocs may specified via the `initialize()` function of the library which will result in no more than that maximum number of documents being returned.\n\n```javascript\nvar\n  mongoose = require('mongoose'),\n  KittehModel = require('./models/kitteh');\n\nrequire('mongoose-middleware').initialize({ maxDocs : 50 }, mongoose);\n\nvar options = {\n  start : 0,\n  count : 100\n};\n\nKittehModel\n  .find()\n  .page(options, function (err, results) {\n    // results.options.count === 50\n  });\n```\n\n*Please note*: While the maxDocs will limit the number of returned documents, it will not affect the total count value of matching documents.\n\n#### Response\n\nPagination returns the specified start, count and overall total numer of matching documents as a wrapper to the results from Mongo.\n\n```javascript\n{\n  options : {\n    count : 50,\n    start : 0\n  },\n  results : [ ... ],\n  total : 734\n}\n```\n\n## Utility Methods\n\n### mergeFilters\n\nmongoose-middleware provides a helper function if you need to programmatically\nadd filters to the query. It will intelligently merge structures, and ensure\nthat elements are turned into Arrays when they need to be.\n\n#### Example\n\n```javascript\nvar base = {\n    filters : {\n      mandatory : {\n        exact : {\n          breed : ['manx', 'siamese', 'tabby'],\n          name : 'Ballard'\n        }\n      }\n    }\n  },\n  model = {\n    filters : {\n      mandatory : {\n        exact : {\n          breed : 'calico',\n          name : 'Fremont'\n        }\n      }\n    }\n  },\n  merged = require('mongoose-middleware').mergeFilters(base, model);\n```\n\n#### Result\n\n```javascript\n{\n  filters : {\n    mandatory : {\n      exact : {\n        breed : ['manx', 'siamese', 'tabby', 'calico'],\n        name : ['Ballard', 'Fremont']\n      }\n    }\n  }\n}\n```\n\n\n## License\n\nMIT Style\n\n```text\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated\ndocumentation files (the \"Software\"), to deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,\nand to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions\nof the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED\nTO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\nTHE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF\nCONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n```\n","maintainers":[{"name":"brozeph","email":"joshua.thomas@gmail.com"},{"name":"rmomii","email":"robibobi@gmail.com"}],"time":{"modified":"2022-06-20T07:24:34.037Z","created":"2013-06-13T20:57:16.385Z","0.1.0":"2013-06-13T20:57:19.030Z","0.1.1":"2013-06-13T21:16:07.669Z","0.1.2":"2013-06-13T21:21:37.740Z","0.2.1":"2013-06-13T23:12:15.254Z","0.2.2":"2013-06-17T23:59:27.405Z","0.2.3":"2014-02-12T16:33:31.588Z","0.2.4":"2014-04-27T19:26:23.208Z","0.2.5":"2014-04-29T21:09:55.851Z","0.2.6":"2014-06-27T19:50:04.517Z","0.2.7":"2014-06-27T19:56:10.253Z","0.2.8":"2014-08-26T21:23:38.742Z","0.2.9":"2014-08-29T01:54:58.114Z","0.2.10":"2014-12-31T23:39:15.029Z","0.2.11":"2015-04-28T16:54:30.599Z","0.2.12":"2015-04-28T22:33:25.042Z","0.2.13":"2015-11-11T17:25:08.608Z","0.2.14":"2016-02-22T18:23:07.908Z","0.2.15":"2016-03-04T21:11:36.614Z","0.2.16":"2016-03-08T23:14:04.884Z","0.2.17":"2016-03-09T00:19:35.255Z","0.2.18":"2016-04-14T16:22:28.287Z","0.2.19":"2016-04-27T18:28:46.517Z","0.2.20":"2016-10-19T14:03:43.494Z","0.3.0":"2016-10-19T17:54:47.804Z","1.0.0":"2016-12-20T17:43:41.771Z","2.0.0":"2019-03-14T21:34:12.842Z","2.0.1":"2020-01-23T20:27:28.270Z"},"repository":{"type":"git","url":"git+ssh://git@github.com/PlayNetwork/mongoose-middleware.git"},"readmeFilename":"readme.md","homepage":"https://github.com/PlayNetwork/mongoose-middleware#readme","keywords":["mongo","mongoose","mongoose middlware","mongoose-middleware"],"bugs":{"url":"https://github.com/PlayNetwork/mongoose-middleware/issues"},"license":"MIT","users":{"d0ughtyj":true}}