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

accelerare l'elaborazione di set di risultati di grandi dimensioni utilizzando rmongodb

Potresti provare mongo.find.exhaust opzione

cursor <- mongo.find(mongo, query, options=[mongo.find.exhaust])

Questa sarebbe la soluzione più semplice se funziona davvero per il tuo caso d'uso.

Tuttavia, al driver rmongodb sembrano mancare alcune funzionalità extra disponibili su altri driver. Ad esempio, il driver JavaScript ha un Cursor.toArray metodo. Che scarica direttamente tutti i risultati della ricerca in un array. Il driver R ha un mongo.bson.to.list funzione, ma un mongo.cursor.to.list è probabilmente quello che vuoi. Probabilmente vale la pena chiedere consiglio allo sviluppatore del driver.

Una soluzione hacky potrebbe essere quella di creare una nuova raccolta i cui documenti sono "pezzi" di dati di 100000 dei documenti originali ciascuno. Quindi ognuno di questi potrebbe essere letto in modo efficiente con mongo.bson.to.list . La raccolta in blocchi può essere costruita utilizzando la funzionalità MapReduce del server mongo.