JSPM

  • Created
  • Published
  • Downloads 1132
  • Score
    100M100P100Q107238F
  • License MIT

Cache plugin for mongoose

Package Exports

  • ts-cache-mongoose

Readme

ts-cache-mongoose

Cache queries in mongoose using memory or redis

npm npm GitHub
Coverage Quality Gate Status
Reliability Rating Maintainability Rating Security Rating

npm

Motivation

ts-cache-mongoose is a plugin for mongoose
Caching queries is a good way to improve performance of your application
⚠️ This is initial prerelease of the plugin, so it may contain bugs
🛠️ Work in progress...

Features

  • Memory caching
  • Redis caching
  • Cache expiration
  • Cache invalidation
  • Cache key generation
  • Cache key prefix
  • Query caching support
  • Aggregate caching support
  • More tests

Installation

npm install ts-cache-mongoose
yard add ts-cache-mongoose
  • This plugin requires mongoose >=6.6.x || 7.x to be installed as a peer dependency
# For mongoose 6
npm install mongoose@legacy
yarn add mongoose mongoose@legacy
# For mongoose 7
npm install mongoose@latest
yarn add mongoose@latest

Usage

// On your application startup
import mongoose from 'mongoose'
import cache from 'ts-cache-mongoose'

// In memory example 
const cache = cache.init(mongoose, {
  engine: 'memory',
})

// Redis example
const cache = cache.init(mongoose, {
  engine: 'redis',
  engineOptions: {
    host: 'localhost',
    port: 6379,
  },
})

mongoose.connect('mongodb://localhost:27017/my-database')

// Somewhere in your code
const User = await User.findById(user._id).cache('1 minute').exec()
const Book = await Book.findById(user._id).cache('30 seconds').exec()