Mongodb Skip()和limit()

时间:2016-02-22 13:00:26

标签: mongodb limit insert-update skip

我正在使用大量记录对mongo集合执行更新查询。所以我使用skip()limit()函数。 例如:在第一个文件中,我正在处理前50000条记录。

cur1= db.collection_name.find(no_cursor_timeout=True).skip(0).limit(50000)

在发送文件中,我正在访问下一个50000条记录

cur2=db.collection_name.find(no_cursor_timeout=True).skip(50000).limit(50000)

我在单独的文件中对这两个游标执行各种更新查询。 现在我想知道如何将这些更新的记录添加回集合中? cur2查询中是否会更新cur2记录?

1 个答案:

答案 0 :(得分:12)

可能。我们无法保证您以相同的顺序获得记录。无论何时插入或更新文档,文档在集合中的存储顺序也会发生变化。而且这个顺序很随机。

尝试使用Robomongo,看看MongoDB的这种性质。每当您尝试获取文档时,在学院的每次更新或插入操作之后,记录的顺序都会发生变化。

在这种情况下,我建议的是对一个独特且单调增加的字段上的记录进行排序。这样,您就可以确保在第二个游标中获取未经编辑的记录。

希望这有帮助。