I believe it would make more sense for index creation to be explicit, rather than implicit through every insert/update operation. I'm aware that pymongo keeps a cache, and only issues the requests every 5 minutes. However, there's still non-trivial cost in iterating over the indexes, and generating the operation.
I'd like to propose a way to turn off that behaviour through Session's init params and to add an explicit ensure_indexes method on Session, which takes a document class.
Pull request coming shortly.