我正在使用python和mongodb。我在mongodb中有一个名为citymap的集合,我需要从每个文档中读取一个字段。之前,我这样做了:
buf+i
现在我知道parallel_scan可以帮助我提高效率以实现相同的目标。但是,我不知道该怎么做。据我所知,也许我可以使用:
&buf[i]
然后我如何处理这些游标并让他们像我之前那样将citycell_pool归还给我?
答案 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
)并减少检索到的文档的大小。通过从循环中删除冗余查找,它现在至少应该快两倍。