Mongodb Skip()和limit()

Mru*_*yee 9 skip limit insert-update mongodb

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

cur1= db.collection_name.find(no_cursor_timeout=True).skip(0).limit(50000)
Run Code Online (Sandbox Code Playgroud)

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

cur2=db.collection_name.find(no_cursor_timeout=True).skip(50000).limit(50000)
Run Code Online (Sandbox Code Playgroud)

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

Sid*_*era 14

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

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

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

希望这可以帮助.

  • 是.排序绝对有帮助.@Mrunmayee:如果问题得到解决,你能接受答案并标记为已解决. (3认同)