我在Amazon EC2微实例上设置了MongoDB。数据库中有大约700万个项目。我正在尝试迭代所有这些并打印出有关每个项目的一些信息。我正在使用python包装器。
import pymongo as p
db_client = p.MongoClient()
db = db_client.my_awesome_db
photo_collection = db.photos
for photo in photo_collection.find():
print photo['attr']
我没有在内存中存储任何内容,并且DB没有被其他任何东西使用。
由于查询运行时间很长,我使用limit()
来估算应该花多长时间。我看到非线性时间,我越大越好。例如,
这并不荒谬,但它比线性大(从10k到100k的跳跃似乎非常糟糕)。我可以在一秒钟内轻松迭代700万行文件,但按此速率迭代整个数据库需要25个小时。
我有错误的配置吗? find()
不是正确的函数吗?