0.0.12 • Published 1 year ago

mongoose-fast-pagination v0.0.12

Weekly downloads
3
License
MIT
Repository
github
Last release
1 year ago

Install

    npm i mongoose-fast-pagination

Usage

const mongoose = require('mongoose')
const mongooseFastPagination = require('mongoose-fast-pagination')

// create basic schema
const userSchema = new mongoose.Schema({
  firstName: {
    type: String,
    required: true
  },
  lastName: {
    type: String,
    required: true
  }
}, {
  timestamps: true
})

// add indexes
userSchema.index({
  name: 1,
  createdAt: 1
})

// add pagination plugin - this will add the #paginate method to the model
userSchema.plugin(mongooseFastPagination, {
  perPage: 10
})

const User = mongoose.model('User', userSchema)

// need to wrap this part in a self executing async function so we can
//  use await rather than needing promises
;(async function () {
  // connect to DB
  await mongoose.connect('mongodb://localhost/mongoose-fast-pagination-test')
  mongoose.connection.db.dropDatabase()

  // create some test users
  for (let i = 0; i < 15; i++) {
    await User.create({
      firstName: 'john' + i,
      lastName: 'doe'
    })
  }

  // load first page of 10
  let results = await User.paginate({
    where: { lastName: 'doe' },
    sort: { createdAt: 'asc' }
  })
  console.log('Got first page of users: ', results.documents)
  console.log('Are there more pages to load? : ', results.hasMore)
  let lastId = results.documents[results.documents.length - 1].id
  console.log('\nNow going to fetch the next page of results after user ', lastId)

  // load second page
  results = await User.paginate({
    where: { lastName: 'doe' },
    sort: { createdAt: 'asc' },
    lastId: lastId
  })
  console.log('Got second page of users: ', results.documents)
  console.log('Are there more pages to load? : ', results.hasMore)
  process.exit()
})()
0.0.11

1 year ago

0.0.12

1 year ago

0.0.10

3 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

5 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago