Vous voudrez peut-être essayer le mongo.find.exhaust
possibilité
cursor <- mongo.find(mongo, query, options=[mongo.find.exhaust])
Ce serait la solution la plus simple si elle fonctionne réellement pour votre cas d'utilisation.
Cependant, le pilote rmongodb semble manquer de certaines fonctionnalités supplémentaires disponibles sur d'autres pilotes. Par exemple, le pilote JavaScript a un Cursor.toArray
méthode. Ce qui vide directement tous les résultats de la recherche dans un tableau. Le pilote R a un mongo.bson.to.list
fonction, mais un mongo.cursor.to.list
est probablement ce que vous voulez. Cela vaut probablement la peine de contacter le développeur du pilote pour obtenir des conseils.
Une solution hacky pourrait être de créer une nouvelle collection dont les documents sont des "morceaux" de données de 100 000 des documents originaux chacun. Ensuite, chacun de ces éléments pourrait être lu efficacement avec mongo.bson.to.list
. La collection fragmentée peut être construite à l'aide de la fonctionnalité MapReduce du serveur mongo.