Es posible que desee probar el mongo.find.exhaust
opción
cursor <- mongo.find(mongo, query, options=[mongo.find.exhaust])
Esta sería la solución más fácil si realmente funciona para su caso de uso.
Sin embargo, parece que al controlador rmongodb le faltan algunas características adicionales disponibles en otros controladores. Por ejemplo, el controlador JavaScript tiene un Cursor.toArray
método. Que vuelca directamente todos los resultados de búsqueda en una matriz. El controlador R tiene un mongo.bson.to.list
función, pero un mongo.cursor.to.list
es probablemente lo que quieres. Probablemente valga la pena pedir consejo al desarrollador del controlador.
Una solución engañosa podría ser crear una nueva colección cuyos documentos sean "fragmentos" de datos de 100000 de los documentos originales cada uno. Luego, cada uno de estos podría leerse de manera eficiente con mongo.bson.to.list
. La colección fragmentada podría construirse utilizando la funcionalidad MapReduce del servidor mongo.