el uso de $natural sort omitirá el índice y devolverá los documentos en el orden en que están almacenados en el disco, lo que significa que mongo no tiene que lidiar con lecturas aleatorias en su disco.
https://docs.mongodb.com/ manual/reference/method/cursor.sort/#return-natural-order
El rendimiento se degrada gravemente si desea utilizar una consulta. Nunca debe confiar en los pedidos FIFO. Mongo se permite mover documentos dentro de su capa de almacenamiento. Si no te importa el orden, que así sea.
for d in db.docs.find().sort( { $natural: 1 } ):
mylist.append(d)
en python, también desea utilizar un EXHAUST tipo de cursor que le dice al servidor mongo que transmita los resultados sin esperar a que el controlador pymongo reconozca cada lote
https://api.mongodb .com/python/current/api/pymongo/cursor.html#pymongo.cursor.CursorType.EXHAUST
Eso sí, nunca será tan rápido como el caparazón. El aspecto más lento de mover datos entre mongo/bson->pymongo->you es la decodificación de cadenas UTF8 dentro de python.