Vielleicht möchten Sie mongo.find.exhaust
ausprobieren Möglichkeit
cursor <- mongo.find(mongo, query, options=[mongo.find.exhaust])
Dies wäre die einfachste Lösung, wenn sie für Ihren Anwendungsfall tatsächlich funktioniert.
Dem rmongodb-Treiber scheinen jedoch einige zusätzliche Funktionen zu fehlen, die bei anderen Treibern verfügbar sind. Beispielsweise hat der JavaScript-Treiber ein Cursor.toArray
Methode. Dadurch werden alle Suchergebnisse direkt in ein Array ausgegeben. Der R-Treiber hat eine mongo.bson.to.list
Funktion, sondern eine mongo.cursor.to.list
ist wahrscheinlich das, was Sie wollen. Es lohnt sich wahrscheinlich, den Treiberentwickler um Rat zu fragen.
Eine trickreiche Lösung könnte darin bestehen, eine neue Sammlung zu erstellen, deren Dokumente Datenblöcke von jeweils 100000 der Originaldokumente sind. Dann könnten diese alle effizient mit mongo.bson.to.list
gelesen werden . Die aufgeteilte Sammlung könnte mit der MapReduce-Funktionalität des Mongo-Servers erstellt werden.