N'étant satisfait ni de MongoKit ni de MongoEngine, j'ai décidé d'écrire ma propre interface orientée objet pour Python.
J'ai délégué toutes les requêtes directement à pymongo, donc la syntaxe de requête est la même. La plupart du temps, il ne s'agit que d'un wrapper d'objets autour des résultats, avec d'autres aides comme le pool de connexions de base de données, la prise en charge de DBRef et d'autres méthodes pratiques pour vous simplifier la vie.
Il s'appelle Minimongo et est disponible sur github. Bon piratage!
Exemple:
from minimongo import Model, MongoCollection
class MyObject(Model):
model = MongoCollection(database='test', collection='my_collection')
m = MyObject()
m.x = 1
m.field = 'value'
m.other = {'list': True}
m.save()
x = MyObject({'x': 1, 'y': 2}).save()
objs = MyObject.find({'x': 1})
for o in objs:
print o