pymongo:可以使用 next() 和 prev() 迭代结果吗?
我有一个数据库,其中有一列“id”,整数类型。我正在使用:
records = config.gSupei1Collection.find().sort([("id",pymongo.DESCENDING)])
来获取光标,然后我使用
record = reports[0]
来获取最大的ID记录。
我想知道在获得“记录”后,我可以使用 record.next()、record.prev() 来获取与该记录相邻的记录吗?我找不到任何文件。
I have a database with a column "id", integer type. I am using:
records = config.gSupei1Collection.find().sort([("id",pymongo.DESCENDING)])
To get the cursor, and then I use
record = records[0]
to get the largest ID record.
I am wondering after I got 'record', can I use record.next(), record.prev() to get the record that is neighbour to the record? I can't find any document.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以循环记录。 Record 是一个实际文档(字典),不是迭代器,但结果是。
您可以执行以下操作:
或者,如果您想将返回的记录用作迭代器,您可以执行以下操作:
或者为了向前兼容:
Records 是一个迭代器。每次您看到可以循环的内容时,它都是一个可迭代对象,您只需对其调用
next()
和rewind()
即可。但要小心,调用rewind()
将会向数据库服务器重新发出相同的查询。仅供参考,查看某物类型的最简单方法是在解释器中对程序进行原型设计,然后您可以执行
>> help(records)
并查看 pydocs。You can loop the records. Record is an actual document (a dict), not an iterator, but the result is.
You can do something like this:
Or if you want to use the returned records as an iterator, you can do something like:
Or for forward compatibility:
Records is an iterator. Every time you see something that you can loop, it's an iterable, and you can just call
next()
andrewind()
on it. Be careful though, callingrewind()
will reissue the same query to the database server.FYI, the easiest way to see what type something is is to prototype your program in the interpreter, then you can do
>> help(records)
and see the pydocs.