我最近开始通过 shell 和 PyMongo 测试 MongoDB。我注意到返回游标并尝试对其进行迭代似乎是实际迭代的瓶颈。有没有办法在迭代期间返回多个文档?
伪代码:
for line in file:
value = line[a:b]
cursor = collection.find({"field": value})
for entry in cursor:
(deal with single entry each time)
我希望做的是这样的:
for line in file
value = line[a:b]
cursor = collection.find({"field": value})
for all_entries in cursor:
(deal with all entries at once rather than iterate each time)
我已经尝试根据this question使用batch_size()并将值一直更改为1000000,但它似乎没有任何效果(或者我做错了)。
任何帮助是极大的赞赏。请对这个Mongo新手放轻松!
- - 编辑 - -
谢谢迦勒。我想你已经指出了我真正想问的问题,那就是:有什么方法可以执行某种collection.findAll()
或cursor.fetchAll()
命令,就像 cx_Oracle 模块一样?问题不在于存储数据,而是尽可能快地从 Mongo DB 中检索数据。
据我所知,数据返回给我的速度是由我的网络决定的,因为 Mongo 必须单次获取每条记录,对吗?