【发布时间】:2012-05-12 12:53:26
【问题描述】:
我正在寻找在 python 中创建和处理游标的方式,就像游标在 mongo 中本机工作的方式一样。我知道预期的方法是执行“result = collection.find()”并执行“for record in result”,但我希望将迭代功能包装在一个类中。我希望能够创建一个新的类对象并调用一个函数,例如init_cursor() 建立数据库连接并执行返回游标的查找。然后我希望有一个 get_next() 函数,该函数将移动到下一个结果并根据结果设置类数据成员。这是伪代码:
class dataIter():
def __init__(self):
self.collection = pymongo.Connection().db.collection
self.cursor = self.collection.find({}) #return all
self.age = None
self.gender = None
def get_next(self):
if self.cursor.hasNext():
data = self.cursor.next()
self.set_data(data)
def set_data(self, data):
self.age = data['age']
self.gender = data['gender']
这样我就可以简单地调用:
obj.get_next()
age = obj.age
gender = obj.gender
或其他一些帮助功能从每个文档中提取数据
【问题讨论】:
-
如果你要包装一个游标,你应该建立一些机制来每次刷新连接。不应像在 init 中那样持久地保持光标。它必须被丢弃和刷新。我们的想法是获取光标并将结果提取到分离的对象中。