我正在使用大量记录对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记录?
答案 0 :(得分:12)
可能。我们无法保证您以相同的顺序获得记录。无论何时插入或更新文档,文档在集合中的存储顺序也会发生变化。而且这个顺序很随机。
尝试使用Robomongo,看看MongoDB的这种性质。每当您尝试获取文档时,在学院的每次更新或插入操作之后,记录的顺序都会发生变化。
在这种情况下,我建议的是对一个独特且单调增加的字段上的记录进行排序。这样,您就可以确保在第二个游标中获取未经编辑的记录。
希望这有帮助。