MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

accélérer le traitement d'ensembles de résultats volumineux à l'aide de rmongodb

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.