У меня очень мало знаний о mongodb, так как я понимаю, что вы получаете dict как результат запроса.
Главный вопрос: какую модель следует инкапсулировать?
Старомодный путь:
class Dog(object):
def __init__(self, voice=None, **kwargs):
self.voice = voice
def bark(self):
print self.voice
data = assuming_that_django_mongodb_data_is_dict_and_voice_is_included
dog = Dog(**data)
Метод мертвых клеток мозга:
class AnyModel(object):
def __init__(self, **kwargs):
for name, value in kwargs.iter():
setattr(self, name, value)
Думаю, было бы неплохо иметь объекты наборов запросов, но это не так просто, по крайней мере, для меня.