Я пытался импортировать данные из MongoDB в г с помощью:долгое время импортировать данные с помощью mongo.find.all (rmongodb)
mongo.find.all(mongo, namespace, query=query,
fields= list('_id'= 0, 'entityEventName'= 1, context= 1, 'startTime'=1), data.frame= T)
Команда работает найти для небольших наборов данных, но я хочу, чтобы импортировать 1000000 документы.
Используя system.time и добавляя предел = X к команде, я измерять время как функции данных для импорта:
system.time(mongo.find.all(mongo, namespace, query=query ,
fields= list('_id'= 0, 'entityEventName'= 1, context= 1, 'startTime'=1),
limit= 10000, data.frame= T))
Результаты:
Data Size Time
1 0.02
100 0.29
1000 2.51
5000 16.47
10000 20.41
50000 193.36
100000 743.74
200000 2828.33
После нанесения на график данные, которые я считаю, что: Import Time = F (данных^2)
Time = -138,3643 + 0,0067807 * Размер данных + 6,77 (Размер-45762,6 данных) 3e-8 *^2
R^2 = 0,999997
- Я правильно?
- Есть ли более быстрая команда?
Спасибо!
Thx Dmitriy! В большинстве случаев я хочу извлечь все документы в своей коллекции, чтобы узнать размер результата (используя «mongo.count»). Но я не понимаю, что это: cursor <- mongo.find (...)? Кроме того, я считаю, что можно использовать mapply вместо цикла - время вычисления будет значительно короче :) –
см. Обновленный код. 'mapply' не поможет, потому что вам нужно перебирать курсор. Если вы не понимаете, как это работает, обратитесь к руководству MongoDB: http://docs.mongodb.org/manual/core/cursors/ –
в цикле 'while' не должно быть' result_lst [[i]] '? – tospig