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



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

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

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

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

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

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

db.collection.find().skip(10).limit(10)

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

根据pymongo的irc频道 #mongoengine freenode没有区别。事实上,我在 mongoid 文档中找不到称为偏移量的东西。此外,应尽可能避免跳过。当您"跳过"结果时,它仍然需要计算它们以跳过它们。 这是浪费,并且页码越高,log n 性能就越高(因为需要遍历所有匹配记录的完整索引)。 使用$gt查询来匹配"已经看到的内容之后的所有内容"允许MongoDB正确使用索引。

最新更新