dB查询偏移和跳过之间有什么区别

时间:2016-06-15 17:41:01

标签: mongodb mongoid mongodb-query

我目前正在使用mongodb作为大型轨道应用程序的数据库.dB查询跳过和偏移之间有什么区别

2 个答案:

答案 0 :(得分:0)

当您想要使用分页结果时,Mongodb提供了两种批处理方法。首先是跳过,您通常将其称为cursor.skip(n),其中n告诉它跳过n个文档。

例如db.collection.find()。skip(4)//跳过4个文档

另一种方法是使用限制,严格限制输出到您提供的数字。

例如db.collection.find()。limit(10)//将输出限制为10个文档

如果要有效地使用批处理操作,请连续使用:

db.collection.find()。跳跃(10).limit(10)

这样,您可以通过跳过10个文档的页面来实现分页,同时将输出限制为10个文档。

答案 1 :(得分:0)

根据每个pymongo的irc频道#mongoengine在freenode上没有区别。实际上我在mongoid文件中找不到这种称为偏移的东西。也应该尽量避免跳过。当你&#34 ;跳过"结果,它仍然需要计算它们以跳过它们。这是浪费的,并且在页面编号越高的情况下显示日志性能(因为需要遍历所有匹配记录的完整索引)。使用$ gt查询匹配"已经看过的所有内容"允许MongoDB正确使用索引。