使用Pymongo的rewind()函数后,结果的顺序是否会改变?

时间:2017-05-02 01:27:42

标签: mongodb pymongo

鉴于MongoDB查询结果按照找到的顺序返回,其中" may coincide with insertion order (but isn't guaranteed to be) or the order of the index(es) used":

这是否意味着在使用Pymongo' rewind()函数后,结果的顺序可能会发生变化?

似乎rewind()执行另一个数据库查询,对吗?

1 个答案:

答案 0 :(得分:2)

正确,rewind()执行另一个数据库查询,就好像第一个从未发生过一样。如果您没有为结果指定任何排序顺序,并且MongoDB必须在第一个和第二个查询之间移动某些文档(例如,因为某些文档已更改大小),您将以不同的顺序获取它们。

如果您需要特定订单中的文档,请使用sort

http://api.mongodb.com/python/current/api/pymongo/cursor.html#pymongo.cursor.Cursor.sort