1.0.5 • Published 3 years ago

mongoose-cursor-pagination-plugin v1.0.5

Weekly downloads
39
License
MIT
Repository
github
Last release
3 years ago

mongoose-cursor-pagination-plugin

Cursor pagination plugin for mongoose

Based on this repository: https://github.com/mixmaxhq/mongo-cursor-pagination

Install

npm i mongoose-cursor-pagination-plugin --save

How to use:

yourSchema.plugin(MongoPaging.mongoosePlugin);

Initialize Your Schema

const MongoPaging = require('mongoose-cursor-pagination-plugin');
const mongoose = require('mongoose');
const booksSchema = new mongoose.Schema({ counter: Number });

Plug the mongoosePlugin.

// this will add paginate function.
booksSchema.plugin(MongoPaging.mongoosePlugin);

const books = mongoose.model('books', booksSchema);

// default function is "paginate"
books.paginate({ limit: 10, query: {
    title: 'Book1';
  }})
  .then(result => {
  console.log(result);
});

to populate:

books.paginate({ limit: 10, query: { title: 'Book1' }, populate: [{ path: 'author' }]  })
  .then(result => {
    console.log(result);
  });

Performs a find() query on a passed-in Mongo collection, using criteria you specify. The results are ordered by the paginatedField.

@param {MongoCollection} collection A collection object returned from the MongoDB library's or the mongoist package's db.collection(<collectionName>) method. @param {Object} params -query {Object} The find query. -limit {Number} The page size. Must be between 1 and config.MAX_LIMIT. -fields {Object} Fields to query in the Mongo object format, e.g. {_id: 1, timestamp :1}. The default is to query all fields. -paginatedField {String} The field name to query the range for. The field must be: 1. Orderable. We must sort by this value. If duplicate values for paginatedField field exist, the results will be secondarily ordered by the _id. 2. Indexed. For large collections, this should be indexed for query performance. 3. Immutable. If the value changes between paged queries, it could appear twice. 4. Complete. A value must exist for all documents. The default is to use the Mongo built-in '_id' field, which satisfies the above criteria. The only reason to NOT use the Mongo _id field is if you chose to implement your own ids. -sortAscending {Boolean} True to sort using paginatedField ascending (default is false - descending). -next {String} The value to start querying the page. -previous {String} The value to start querying previous page. @param {Function} done Node errback style function.