我正在try 迭代这个循环:

for doc in coll.find()

我在第10万多条记录中得到以下错误.

File "build\bdist.win32\egg\pymongo\cursor.py", line 703, in next
File "build\bdist.win32\egg\pymongo\cursor.py", line 679, in _refresh
File "build\bdist.win32\egg\pymongo\cursor.py", line 628, in __send_message
File "build\bdist.win32\egg\pymongo\helpers.py", line 95, in _unpack_response
pymongo.errors.OperationFailure: cursor id '1236484850793' not valid at server

这个错误意味着什么?

推荐答案

也许你的光标在服务器上超时了.要查看这是否是问题所在,请try 设置timeout=False`:

for doc in coll.find(timeout=False)

http://api.mongodb.org/python/1.6/api/pymongo/collection.html#pymongo.collection.Collection.find

如果是超时问题,一个可能的解决方案是设置batch_size(其他答案).

Mongodb相关问答推荐

MongoDB通过查找具有多个数组的对象进行聚合

在mongdob中按子文档筛选不起作用

MongoDB MQL,将列表一分为二,仅获取唯一值

MongoDb聚合查询问题

为什么使用 Golang Mongo 驱动程序进行简单查询需要超过 2 秒?

从具有多个数组匹配 MongoDB 的两个集合中采样数据

避免在 MongoDB 聚合框架中使用 ISODate() 以便管道可以是纯 JSON

在运算符 $map 中嵌入运算符 $exists

如何在 mongodb golang 的单个更新调用中使用 $set 和 $inc?

声明多个模式后无法从数据库中获取数据(mongoose + express + mongodb

为多个日期范围聚合 $group

如何对连接到 mongo 的方法进行单元测试,而不实际连接到 mongo?

MongoDB中超过2GB的数据库

Mongoose.pre('save') 不会触发

Mongo:无法在 src/mongo/shell/mongo.js:145 连接到服务器 127.0.0.1:27017

用于嵌入式集合的 MongoDB 首选模式.文档与数组

在安装的 MongoDB homebrew 中设置 dbpath (Mac OS)

Flask:设置应用程序和请求特定的属性?

使用 mongodb 在数组中查找子文档

MongoDB Compass 中 JSON 输入意外结束