Eu usei o PyMongo com o Gevent e aqui estão algumas coisas que você precisa observar:
- Instanciar apenas um
pymongo.Connectionobjeto, de preferência como uma variável global ou de nível de módulo. Isso é importante porqueConnectiontem dentro de si uma piscina! - Monkey corrige tudo, ou pelo menos AMBOS o soquete e o encadeamento. Devido ao uso de threads locais em
Connection, apenas corrigir o soquete não é suficiente. - Lembre-se de ligar para
end_requestpara retornar a conexão ao pool.
A resposta para sua pergunta é vá em frente, o PyMongo funciona bem com o Gevent.