Tweet
Estou testando o módulo Django MongoDB Engine, um backend para Django bastante completo.
O grande diferencial desse módulo é permitir uma integração total e transparente do Django com o MongoDB, inclusive trabalhando no models da mesma forma que em um banco relacional. Além disso, o módulo também permite utilizar GridFS, Map Reduce, Agregadores e Atomic Updates em apps do Django, mantendo total compatibilidade com Admin, Sessões e Autenticação padrão do Django.
Como ainda não existe uma solução oficial para trabalhar com NoSQL no Django, esse módulo — até agora — é o mais completo e parece bastante estável. Ainda não instalei em aplicações em produção, mas ao realizar testes em laboratório, o módulo promete ter um grande potencial.
InstalaçãoA recomendação inicial é utilizar virtualenv, pelo fato do módulo ser recente e estar em constante desenvolvimento. É necessário instalar algumas dependências, como Django-Nonrel e Djangotoolbox. Fiz a instalação seguindo o próprio manual do módulo, que sugere pegar esses módulos diretamente de seus repositórios, mas acredito que também funciona utilizando o pip install.
Com o ambiente virtualenv já criado e o Django já instalado, o primeiro passo é instalar o Django-Nonrel direto do repositório Mercurial:
$ hg clone [bitbucket.org] $ cd django-nonrel && python setup.py install
Depois, instalamos o módulo Djangotoolbox:
$ hg clone [bitbucket.org] $ cd djangotoolbox && python setup.py install
E por último, vamos instalar o módulo Django MongoDB Engine, esse último, buscando do repositório Git:
$ git clone [https:] $ cd mongodb-engine && python setup.py installAlterações no settings.py
Depois de instalar os módulos acima, basta alterar o backend no settings.py para trabalhar com o MongoDB. O meu ficou da seguinte forma:
DATABASES = {
'default': {
'ENGINE': 'django_mongodb_engine',
'NAME': 'testedjango',
}
}
Depois disso é só trabalhar normalmente! No caso acima, a base de dados será a “testedjango”, os parâmetros de host, user, password são opcionais.
Em um teste simples, após seguir todos os procedimentos acima, rode um syncdb e depois entre no shell do Mongo. Poderá notar que o banco “testedjango” foi criado e as collections básicas para trabalhar com Django.
Vou realizar testes mais pesados com o módulo e publicarei posts mais completos a respeito.
Para maiores informações, o site oficial do projeto é [django-mongodb.org]