No estando satisfecho con MongoKit o MongoEngine, decidí escribir mi propia interfaz orientada a objetos para Python.
Delegué todas las consultas directamente a pymongo, por lo que la sintaxis de la consulta es la misma. En su mayoría, es solo un envoltorio de objetos alrededor de los resultados, con algunos otros ayudantes como la agrupación de conexiones de base de datos, soporte DBRef y otros métodos convenientes para hacer su vida más fácil.
Se llama Minimongo y está disponible en github. ¡Feliz piratería!
Ejemplo:
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