django mongodb engine
DESCRIPTION
TRANSCRIPT
So you want to use
DJANGO ANDMONGODB
@flaper87
THAT’S COOL, but you n!dto know A COUPLE OF THINGS
DJANGO ANDMONGODB
LIKE: WHAT ARETHE OPTIONS?
An object-document mapperto connect Python and MongoDB
( http://mongoengine.org )
Another ODMthat takes mongodb into the web
Mongokit( http://namlook.github.com/mongokit/ )
OR, OF COURSE
DJANGOMONGODBENGINE(A MongoDB backend for Django)
DJANGO-NONRELA good and up to date Django fork
that brings non-rel support
DJANGO-NONRELA good and up to date Django fork
that brings non-rel support
Unfortunately, most of your
may be broken, but not the admin
django.contrib.*Sadly, some of your
may be broken, but not the admin
DJANGO-NONRELA good and up to date Django fork
that brings non-rel support
erm...
No "anges n!ded.
erm... OKAYWHAT’S SO COOL
ABOUT THIS THEN?No "anges n!ded.
No "anges n!ded.
erm... OKAYWHAT’S SO COOL
ABOUT THIS THEN?
No "anges n!ded.
NOBODY’S GONNA TOUCHYOUR PRECIOUS BUILTINS.
WHAT’S SO COOLABOUT THIS THEN?
NOBODY’S GONNA TOUCHYOUR PRECIOUS BUILTINS.
REDUCED IMPEDANCE MISSMATCH
WHAT ELSE?#at’s c$l
NEW FIELDS
AGGREGATIONS
GRIDFS
CACHING
MAP / REDUCE>>> for pair in Article.objects.map_reduce(_map, _reduce, 'wordcount'):... print pair.key, pair.value
NEW INDEXESclass Club(models.Model): location = ListField() rating = models.FloatField() ... class MongoMeta: indexes = [ [('rating', -1)], {'fields': [('location', '2d')], 'min': -42, 'max': 42}, ]
TONS OF DOCSPlus:
(which never hurts)
Su%estions
RAW QUERIESMyModel.objects.raw_query(field=“value”)
EMBEDD IF POSSIBLE
class Comment(models.Model): created_on = models.DateTimeField() author = EmbeddedModelField('Author') text = models.TextField()
RE-THINK YOUR MODELS
class Post(models.Model): title = models.CharField() text = models.TextField() tags = ListField()
# Note: Use defer comments = ListField(EmbeddedModelField('Comment'))
DO NOT USE IT EVERYWHERE
MONGODB_MANAGED_APPS = ['myapp']
MONGODB_MANAGED_MODELS = ['myapp.MongoDBModel']
SERVE STATIC FILES
GridFSStorage + nginx-GridFS
AGGREGATIONS? MAP/REDUCE
class Min(MongoAggregate): initial_value = float('inf') reduce_template = '{alias} = ({lookup}<{alias})?{lookup}:{alias}'
class Max(MongoAggregate): initial_value = float('-inf') reduce_template = '{alias} = ({lookup}>{alias})?{lookup}:{alias}'
DATES WORK But, MongoDB does not support month/day queries
DO NOT TRY TO MIGRATEIt Wont Work!
CONTRIBUTEThe Compiler’s a mess
A' away
Contribute:http://django-mongodb.org/meta/contributing.html
http://groups.google.com/group/django-non-relational