Caching MongoDB connections in Django Caching MongoDB connections in Django mongodb mongodb

Caching MongoDB connections in Django


There are several ways explaining how pymongo can work (or fail) with mod_wsgi, suggested here: http://api.mongodb.org/python/current/faq.html?highlight=wsgi#does-pymongo-work-with-mod-wsgi

In addition you can use some kind of pooling solution, like described here: http://www.mongodb.org/display/DOCS/Notes+on+Pooling+for+Mongo+Drivers

One project that I know already to have pooling is MongoEngine, its a very simple ORM that uses pymongo behind the scenes. You might want to look into it together with the pymongo faq solutions above.


You can instantiate MongoDB connection somewhere and import it as opposed to calling pymongo.connection.Connection() every time you need it. Or you can create a Singleton to do this. Something like this in settings.py.

class ConnectionSingleton(object):    """Represents a MongoDB connection"""    conn=None    def __new__(cls,*args,**kwds):        if cls.conn is None:            cls.conn=pymongo.connection.Connection()        return cls.conn

Wouldn't this solve your problem?