pymongo:可以迭代结果使用next()和prev()吗?

时间:2011-02-17 12:33:30

标签: python mongodb pymongo

我有一个数据库,其列为“id”,整数类型。我正在使用:

records = config.gSupei1Collection.find()。sort([(“id”,pymongo.DESCENDING)])

要获取光标,然后使用

记录=记录[0]

获取最大的身份证记录。

我想知道在得到'记录'之后,我可以使用record.next(),record.prev()来获取与记录相邻的记录吗?我找不到任何文件。

1 个答案:

答案 0 :(得分:1)

您可以循环记录。 Record是一个实际文档(dict),而不是迭代器,但结果是。

您可以这样做:

for i, d in enumerate(records):
    print i, d

或者,如果要将返回的记录用作迭代器,可以执行以下操作:

n = records.next()

或者为了向前兼容:

n = next(records)

记录是一个迭代器。每当您看到可以循环的内容时,它都是可迭代的,您只需在其上调用next()rewind()即可。但要小心,调用rewind()将重新发出与数据库服务器相同的查询。

仅供参考,查看什么类型的最简单方法是在解释器中对程序进行原型设计,然后您可以>> help(records)查看pydocs。