Code Monkey home page Code Monkey logo

mongoose-cache's Introduction

Flattr this git repo

mongoose-cache

Monkey patches Mongoose.Query to support in-memory caching.

usage

Monkey-Patching mongoose:

var mongoose = require('./mongoose')
var cacheOpts = {
	max:50,
	maxAge:1000*60*2
};
require('mongoose-cache').install(mongoose, cacheOpts)

This means "cache up to 50 querys with a livetime of two minutes". See https://github.com/isaacs/node-lru-cache#options for all available options.

For enabling this cache in your query just call .cache()

db.User.find({ ... }).cache().exec(function() { ... })

For more talky output add debug: true to the cacheOpts.

mongoose-cache's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

mongoose-cache's Issues

RegExp not creating a key

If you create a search using the RegExp object, to search by a regular expression the key that gets created doesn't exist because toJSON for RegExp creates a black string. This can be solved by adding this line.

RegExp.prototype.toJSON = RegExp.prototype.toString;

I have done this in my query files, but perhaps this can go in the library as well to help solve why the key doesn't get created if you are searching based on a regular expression.

mongoose with promises

mongoose supports promises and so it doesn't works because I don't pass a callback into exec.

No way to invalidate the cache

At the moment, if one query is marked to be cached (by calling .cache()), the result can never be invalidated programatically, e.g. if data in the database was changed intentionally and the result of the query needs to change now, too. An invalidation method would be great to fix this problem.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.