Mongodb dB查询offset和skip之间有什么区别

Mongodb dB查询offset和skip之间有什么区别,mongodb,mongoid,mongodb-query,Mongodb,Mongoid,Mongodb Query,我目前正在使用mongodb作为大型rails应用程序的数据库。dB查询skip和offset之间的区别是什么mongodb提供了两种批量处理方法,当您想要使用分页结果时。首先是skip,您通常将其称为游标。skip(n),其中n告诉它跳过n个文档 例如,db.collection.find().skip(4)//跳过4个文档 另一种方法是使用limit,它将输出严格限制为您提供的数量 例如,db.collection.find().limit(10)//将输出限制为10个文档 如果要有效地使用

我目前正在使用mongodb作为大型rails应用程序的数据库。dB查询skip和offset之间的区别是什么

mongodb提供了两种批量处理方法,当您想要使用分页结果时。首先是skip,您通常将其称为游标。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个文档。

Mongodb提供了两种批量处理方法,您可以使用分页结果。首先是skip,您通常将其称为游标。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频道,freenode上的mongoengine没有区别。事实上,我在mongoid文档中找不到称为偏移量的东西。也应尽可能避免跳过“跳过”结果,仍然需要计算它们才能跳过它们。这是一种浪费,而且页码越高(因为需要遍历所有匹配记录的完整索引),日志n性能就会越高。使用$gt查询匹配“已看到的内容之后的所有内容”可以让MongoDB正确使用索引。

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

因为mongoid文档建议使用skip可能会很昂贵。因为mongoid文档建议使用skip可能会很昂贵。