noCursorTimeout()方法具有以下原型形式: db.collection.find(<query>).noCursorTimeout() 兼容性 此方法可用于以下环境中托管的部署: MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务 重要 M 0 、M 2和 M 5集群不支持此命令。 有关更多信息,请参阅不支持的命令。
通过设定参数no_cursor_timeout=True,让游标永不超时: cursor = handler.find(no_cursor_timeout=True) for row in cursor: parse_data(row) cursor.close() # 一定要手动关闭游标 然而这个操作非常危险,因为如果你的Python程序因为某种原因意外停止了,这个游标就再...
varmyCursor = db.users.find().noCursorTimeout(); 设置noCursorTimeout选项后,必须使用cursor.close()手动关闭游标,或者用尽游标的结果。 有关设置noCursorTimeout选项的详细信息,请参阅驱动程序文档。 游标隔离 当游标返回文档时,其他操作可能会与查询交错进行。
可以看到,这里正是关闭游标的操作。 因此,如果我们使用上下文管理器,就可以放心大胆地使用no_cursor_timeout=True参数了。
cursor = handler.find(no_cursor_timeout=True) for row in cursor: parse_data(row) cursor.close() # 一定要手动关闭游标 1. 2. 3. 4. 然而这个操作非常危险,因为如果你的Python程序因为某种原因意外停止了,这个游标就再也无法关闭了!除非重启MongoDB,否则这些游标会一直留在MongoDB上,占用资源。
no_cursor_timeout=True参数的使用 默认拿到cursor后,十分钟内不取数倨或者十分钟内每把数据取完,再继续取,会有timeout的的报错(所以针对取了数据做了很耗时的操作,在这边最好加上这个参数) 实例: importpymongo handler=pymongo.MongoClient().db.col ...
withhandler.find(no_cursor_timeout=True)ascursor:forrowincursor:parse_data(row) 只要程序退出了with的缩进,游标自动就会关闭。如果程序中途报错,游标也会关闭。 它的原理可以用下面两段代码来解释: 代码语言:javascript 复制 classTest:def__init__(self):self.x=1defecho(self):print(self.x)def__enter...
cursor = handler.find(no_cursor_timeout=True) for rowin cursor: parse_data(row) cursor.close()# 一定要手动关闭游标 然而这个操作非常危险,因为如果你的Python程序因为某种原因意外停止了,这个游标就再也无法关闭了!除非重启MongoDB,否则这些游标会一直留在MongoDB上,占用资源。
关闭不活动的Cursor 默认情况下,服务器会自动关闭超过10分钟活跃的或客户端已耗尽的游标。想不使用这个默认行为在 mongo shell 中可以使用ursor.noCursorTimeout()方法: var myCursor = db.users.find().noCursorTimeout(); 设定noCursorTimeout这个选项后,你必须通过cursor.close()方法手动关闭, 或者耗尽这个游标...
withhandler.find(no_cursor_timeout=True)ascursor:forrowincursor:parse_data(row) 只要程序退出了with的缩进,游标自动就会关闭。如果程序中途报错,游标也会关闭。 它的原理可以用下面两段代码来解释: classTest:def__init__(self):self.x=1defecho(self):print(self.x)def__enter__(self):print('进入上...