sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo obtener rápidamente todos los documentos MongoDB pymongo

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.