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

Python pymongo:是否可以使用next()和prev()迭代结果?,python,mongodb,pymongo,Python,Mongodb,Pymongo,我有一个列为“id”的数据库,整数类型。我正在使用: records=config.gSupei1Collection.find().sort([(“id”,pymongo.DESCENDING)]) 获取光标,然后使用 记录=记录[0] 获取最大的ID记录 我想知道在我得到“record”之后,我是否可以使用record.next()、record.prev()来获得与该记录相邻的记录?我找不到任何文档。您可以循环记录。记录是一个实际的文档(dict),不是迭代器,但结果是 您可以这样做: f

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

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

获取光标,然后使用

记录=记录[0]

获取最大的ID记录


我想知道在我得到“record”之后,我是否可以使用record.next()、record.prev()来获得与该记录相邻的记录?我找不到任何文档。

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

您可以这样做:

for i, d in enumerate(records):
    print i, d
或者,如果要将返回的记录用作迭代器,可以执行以下操作:

n = records.next()
或为了向前兼容:

n = next(records)
记录是一个迭代器。每次看到可以循环的内容时,它都是一个iterable,您可以对其调用
next()
rewind()
。不过要小心,调用
rewind()
将向数据库服务器重新发出相同的查询


仅供参考,查看某种类型的最简单方法是在解释器中对程序进行原型化,然后您可以执行
>帮助(记录)
并查看pydocs。

如果尝试,会发生什么?您是否也尝试过
next(records)
?next(records)是什么意思?如果
records
是一个迭代器,那么
next(records)
…将从中获取下一个内容。或者如果你想要前两个,你可以做记录[0]和记录[1]……谢谢,但我不能像这样重复。你是什么意思?记录是一个迭代器。由于性能问题,我不能迭代所有记录。我只想获取记录集中的next()和prev()记录。所以pymongo不能轻易做到这一点?
next(records)
records更受欢迎。对于Python的最新版本,next()
,因为它在Python3上不做任何更改。您不必迭代所有记录。我认为迭代器会按需返回一个文档,当您在中执行此操作时,它会自动调用。