1.3.10 • Published 7 years ago

raycache v1.3.10

Weekly downloads
3
License
ISC
Repository
github
Last release
7 years ago

Raycache

raycache is a simple module which make you able to cache mongodb documents without stringifying whole document.

important: raycache compatible with mongoose 4.1 or higher version

How it works

When you trying to cache a document which contain id, name, active fields, it immediately save this docuement into redis in-memory database using hmset command like this:

main key: 123

Hash keyvalue
id123
id_typenumber
nameHamet
name_typestring
activefalse
active_typeboolean

so when you trying to fetch this document it will return object with exact fields and types

Usage

simply install raycache via npm install raycache --save then initialize it like this

const mongoose = require('mongoose');
const raycache = require('raycache')
mongoose.connect('mongodb://127.0.0.1/test');

raycache(mongoose, {
  options: {
    host: '127.0.0.1',
    port: 6379,
    ttl: 50
  },
  collections: ['agents'],
  postfixType: '_type', 
  alwaysReturnedField: '_id'
})

api

raycache(mongoose, , opts,..)

  • mongoose: a mongoose object required
  • options: redis in-memroy database options redis.createClient() required
  • collections: list of your database collections which need to be caching required
  • postfixType: raycache use this string for concating fields which hold main fields data types optional
  • alwaysReturnedField field name which raycache will always returned in all kind of querys optional

all you need after initializing raycache is

Users.findOne({ _id: "123" })
  .raycache()
  .exec((err, res) => {
    // do some stuff 
  })
  
// OR pass options
Users.findOne({ _id: "123" })
  .raycache({
    ttl: 1000, // Second
    key: '_id', // which field value should be used for redis Main key (it should defined in query condition)
    // or use custom key, key: {name: 'some-value', custom: true}
  })
  .exec((err, res) => {
    // do some stuff 
  })

supported methods

raycache is available for particular methods:

  • for find: findOne, findById
  • for update updateOne
  • for remove deleteOne, findByIdAndRemove, findOneAndRemove
1.3.10

7 years ago

1.3.9

7 years ago

1.3.5

7 years ago

1.2.5-beta

7 years ago

1.2.3-beta

7 years ago

1.2.2-beta

7 years ago

1.2.1-beta

7 years ago

1.0.1-beta

7 years ago

1.0.0-beta

7 years ago