MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Beschleunigen Sie die Verarbeitung großer Ergebnismengen mit rmongodb

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.