MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come recuperare rapidamente tutti i documenti MongoDB pymongo

l'utilizzo dell'ordinamento $natural ignorerà l'indice e restituirà i documenti nell'ordine in cui sono archiviati sul disco, il che significa che mongo non deve agitarsi con letture casuali sul tuo disco.

https://docs.mongodb.com/ manual/reference/method/cursor.sort/#return-natural-order

Le prestazioni vengono notevolmente ridotte se si desidera utilizzare una query. Non dovresti mai fare affidamento sugli ordini FIFO. Mongo si consente di spostare i documenti all'interno del suo livello di archiviazione. Se non ti interessa l'ordine, così sia.

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

in python, vuoi anche usare un EXHAUST tipo di cursore che indica al server mongo di eseguire lo streaming dei risultati senza attendere che il driver pymongo riconosca ogni batch

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

Intendiamoci, non sarà mai veloce come il guscio. L'aspetto più lento dello spostamento dei dati tra mongo/bson->pymongo->you è la decodifica di stringhe UTF8 all'interno di Python.