0

在这个简化的示例中,我有一个返回 10 个文档的查询。

我想先把前半部分(n = 5)还给我的客户。如果他想继续阅读,他可以提交请求,我将下半部分还给他(n = 5)

在 pyMongo 中:

doc = collection.find({'foo': 'bar'}).limit(10)

IMO,一个不太聪明的方法是我可以将doc光标分成两部分,给我的客户,doc[:4]然后doc[5:]根据要求给他。

这是最好的方法吗?是否有任何方法可以返回我离开的位置,并允许我回来阅读其余的文档?

4

1 回答 1

2

有什么理由不使用pymongo.cursor.Cursor.next方法吗?

try:
    c = collection.find({'foo': 'bar'}).limit(10)

    # Take first five
    for in range(5):
        doc = c.next()

    #If you need more
    for in range(5):
        doc = c.next()

 # If there is no next
 except StopIteration:
     pass
于 2013-11-06T17:08:55.500 回答