我在一个有很多记录的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是否会获取在cur1查询中更新的记录?
发布于 2016-02-22 22:02:32
有可能。因此,不能保证您将以相同的顺序获得记录。每当插入或更新文档时,文档存储在集合中的顺序也会发生变化。而且这个顺序是非常随机的。
试着使用Robomongo,看看MongoDB的这一特性。每当您尝试获取文档时,在对学院执行每次更新或插入操作之后,记录的顺序都会发生变化。
在这种情况下,我建议对唯一且单调递增的字段中的记录进行排序。这样,您就可以确保在第二个游标中获得未编辑的记录。
希望这能有所帮助。
https://stackoverflow.com/questions/35554399
复制相似问题