sql >> Base de Datos >  >> NoSQL >> MongoDB

acelere el procesamiento de grandes conjuntos de resultados usando rmongodb

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.