我有一个数据库查询,返回150,000个文档,每个文档包含三个整数字段和一个日期时间字段。以下代码尝试从游标对象创建列表。迭代游标非常慢-大约需要80秒!通过C++驱动程序执行相同操作的速度快了几个数量级-这一定是PyMongo的问题吗?
client = MongoClient()
client = MongoClient('localhost', 27017)
db = client.taq
collection_str = "mycollection"
db_collection = db[collection_str]
mylist = list(db_collection.find())
这个问题以前已经被讨论过,我尝试了许多建议。其中一个是更改默认的批处理大小。所以我尝试了以下方法:
cursor = db_collection.find()
cursor.bath_size(10000)
mylist = list(cursor)
然而,这并没有产生影响。第二个建议是检查是否安装了C扩展 - 我已经安装了它们,所以这不是问题。Mongo数据库安装在同一台机器上,因此不是网络问题 - 它从C ++正常工作...从Pymongo查询是问题所在。
既然MongoDB被营销为能够处理大数据,那么肯定有一种通过Python快速检索数据的方法吧?这个问题之前已经提出过,但我还没有找到解决方案...有人有可以解决的建议吗?在这种情况下,我正在检索150k个文档,但通常查询会检索100万个文档,所以这对我来说将是一个真正的问题。
谢谢。