如何使用parallel_scan提高读取mongodb文件的效率

时间:2015-05-10 09:19:58

标签: python mongodb parallels

我正在使用python和mongodb。我在mongodb中有一个名为citymap的集合,我需要从每个文档中读取一个字段。之前,我这样做了:

buf+i

现在我知道parallel_scan可以帮助我提高效率以实现相同的目标。但是,我不知道该怎么做。据我所知,也许我可以使用:

&buf[i]

然后我如何处理这些游标并让他们像我之前那样将citycell_pool归还给我?

1 个答案:

答案 0 :(得分:1)

我不确定你为什么认为parallel_scan就是你所需要的。似乎您的迭代方法并不高效。为什么要遍历citymap集合,然后从同一个集合中获取您已经获取的同一文档?考虑到你的代码,这对我来说更有意义:

for NN5_doc in citymap.find({},  {'big_cell8.POI': 1}).batch_size(500):
    citycell_pool.append(NN5_doc['big_cell8']['POI'])

使用投影(取决于文档的大小),阅读应该更有效率,您只需阅读所需的字段(big_cell8.POI)并减少检索到的文档的大小。通过从循环中删除冗余查找,它现在至少应该快两倍。