コレクションからすべての行を取得していますが、100 行目で遅延が発生しています。find メソッドがカーソルを返し、すべてのデータが前もって特定の時点でさらにデータをフェッチする必要があるわけではないことを理解しています。しかし、100行目が唯一の遅延です。
Checking images 99
Checking image 100
*pause*
Checking image 101
そして、最大 100 000 画像まで目に見える遅延はありません。
使用した ruby スクリプト:
require 'mongo'
time_start = Time.now
mongo = Mongo::MongoClient.new("localhost", 27017)
db = mongo["pics"]
images = db["images"]
albums = db["albums"]
orphans = []
images.find().each do |row|
puts "Checking image #{row['_id']}"
end
# puts orphans
time_end = Time.now
puts "Total time taken: #{time_end - time_start}"
mongoimport --db pics --collection images file_name
質問は次のとおりです。
- いくつかのデータは最初のカーソルと一緒に来ますか?
- なぜ100行目の唯一の遅延なのですか? 多分私は何かを逃したかもしれませんが、その時点でIOの読み取りさえ見られません
ありがとうございました