MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment récupérer rapidement tous les documents MongoDB pymongo

l'utilisation du tri $naturel contournera l'index et renverra les documents dans l'ordre dans lequel ils sont stockés sur le disque, ce qui signifie que mongo n'a pas à se débattre avec des lectures aléatoires sur votre disque.

https://docs.mongodb.com/ manuel/référence/méthode/curseur.sort/#return-natural-order

Les performances se dégradent fortement si vous souhaitez utiliser une requête. Vous ne devriez jamais compter sur la commande FIFO. Mongo se permet de déplacer des documents dans sa couche de stockage. Si vous ne vous souciez pas de la commande, tant pis.

for d in db.docs.find().sort( { $natural: 1 } ):
    mylist.append(d)

en python, vous souhaitez également utiliser un EXHAUST type de curseur qui indique au serveur mongo de diffuser les résultats sans attendre que le pilote pymongo reconnaisse chaque lot

https://api.mongodb .com/python/current/api/pymongo/cursor.html#pymongo.cursor.CursorType.EXHAUST

Attention, il ne sera jamais aussi rapide que la coque. L'aspect le plus lent du déplacement de données entre mongo/bson->pymongo->you est le décodage de chaîne UTF8 dans python.