我目前在Heroku此Web應用程序,花費主要是逗號分隔值的純文本(或其他分隔符分隔值),用戶副本,和粘貼在網頁表單和應用程序將隨後獲得的數據從每一行,並保存到一個mongo分貝。質量插入mongoid
例如45nm, 180, 3
44nm, 180, 3.5
45nm, 90, 7
...
@project = Project.first # project embeds_many :simulations
@array_of_array_of_data_from_csv.each do |line|
@project.simulations.create(:thick => line[0], :ang => line[1], :pro => line[2])
#e.g. line[0] => 45nm, line[1] => 180, line[2] => 3
end
爲這個應用程序的目的
,我不能讓用戶做任何形式的進口,我們必須從一個textarea從他們那裏得到的數據。每次,用戶可以粘貼多達30,000行。我想這樣做(30,000個數據點)在Heroku上有一些假的數據在一個控制檯,決定終止說一個漫長的過程不是在控制檯支持,儘量耙任務來代替。
所以我想知道是否有人知道插入30,000個文檔需要這麼長時間(當然,這可能就是這樣),或者知道另一種方法來快速插入30,000個文檔?
感謝您的幫助
嘿感謝那個鏈接,我只是試了一下,插入集合時它非常快。但是這裏有一個問題:因爲我沒有將大量文檔插入到一個集合中,而是將很多嵌入式文檔插入到一個根文檔中。你知道有那麼快的類似漂亮的mongo驅動程序命令嗎? – 2011-02-24 03:36:34
@尼克,有什麼區別?這樣做的插入/更新的服務器上的各個操作應該是緩慢的一部分......如果你在×1次插入一批30,000或只是一個大文件*應採取大致相同的時間? – 2011-02-24 18:29:02