Możesz spróbować mongo.find.exhaust
opcja
cursor <- mongo.find(mongo, query, options=[mongo.find.exhaust])
To byłaby najłatwiejsza poprawka, jeśli faktycznie działa w Twoim przypadku użycia.
Wydaje się jednak, że sterownikowi rmongodb brakuje niektórych dodatkowych funkcji dostępnych w innych sterownikach. Na przykład sterownik JavaScript ma Cursor.toArray
metoda. Który bezpośrednio zrzuca wszystkie wyniki wyszukiwania do tablicy. Sterownik R ma mongo.bson.to.list
funkcja, ale mongo.cursor.to.list
jest prawdopodobnie tym, czego chcesz. Prawdopodobnie warto zwrócić się o poradę do programisty sterownika.
Zwariowanym rozwiązaniem może być utworzenie nowej kolekcji, której dokumenty są „kawałkami” danych składającymi się ze 100000 oryginalnych dokumentów. Następnie każdy z nich może być efektywnie odczytywany za pomocą mongo.bson.to.list
. Pofragmentowana kolekcja może być skonstruowana przy użyciu funkcji MapReduce serwera mongo.