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.