Python 在任何数据到达之前终止查询

Python 在任何数据到达之前终止查询,python,mongodb,pymongo,Python,Mongodb,Pymongo,我有一个相当大的集合,并进行非索引(有意)查询,这可能需要很长时间才能返回第一批结果,或指示失败。如果在10秒内什么也没有返回,我希望这些查询失败。所以我写了这个: try: cur = big_collection.find(query, network_timeout=10) for doc in cur: print doc except pymongo.errors.AutoReconnect: print "failure!" 这在客

我有一个相当大的集合,并进行非索引(有意)查询,这可能需要很长时间才能返回第一批结果,或指示失败。如果在10秒内什么也没有返回,我希望这些查询失败。所以我写了这个:

try:
     cur = big_collection.find(query, network_timeout=10)
     for doc in cur:
          print doc
except pymongo.errors.AutoReconnect:
     print "failure!"
这在客户机上运行良好,但是,
current\u op
表示即使在超时之后,查询仍会在服务器上继续执行。我尝试了
cur.close()
db.kill\u cursors
中的
except
块,但这不起作用,可能是因为
cur.cursor\u id
在从服务器接收到任何数据之前一直保持
None


即使查询尚未返回任何数据,是否有方法终止查询?

没有PyMongo包装器,但您可以使用相关的数据库命令查询opid并终止操作。它将看起来像:。由于某种原因

见:

  • (PyMongo命令包装器?注意上面没有使用它…)

谢谢!我想了想。你知道如何从游标对象获取opid吗?