Não estando satisfeito com o MongoKit ou MongoEngine, decidi escrever minha própria interface orientada a objetos para Python.
Deleguei todas as consultas diretamente para pymongo, de modo que a sintaxe da consulta lá é a mesma. Principalmente, é apenas um envoltório de objeto em torno dos resultados, com alguns outros auxiliares como pool de conexão de banco de dados, suporte DBRef e outros métodos de conveniência para tornar sua vida mais fácil.
Chama-se Minimongo e está disponível no github. Feliz hackeamento!
Exemplo:
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