Omdat de verzameling die ik aan het paging was dubbele waarden had, moest ik een samengestelde index maken op ProductName en id.
Samengestelde index maken
db.ProductGuideItem.ensureIndex({ ProductName:1, _id:1});
Dit loste mijn probleem op.
Referentie:https://groups.google.com/d/msg/mongodb-user/3EZZIRJzW_A/oYH79npKZHkJ
Ervan uitgaande dat u deze waarden heeft:
{a:1, b:1}
{a:2, b:1}
{a:2, b:2}
{a:2, b:3}
{a:3, b:1}
Dus je doet dit voor de op bereik gebaseerde paginering (paginagrootte van 2):
1e pagina
find().sort({a:1, b:1}).limit(2)
{a:1, b:1}
{a:2, b:1}
2e pagina
find().min({a:2, b:1}).sort({a:1, b:1}).skip(1).limit(2)
{a:2, b:2}
{a:2, b:3}
3e pagina
find().min({a:2, b:3}).sort({a:1, b:1}).skip(1).limit(2)
{a:3, b:1}
Hier zijn de documenten voor $min/max:http://www.mongodb.org/display/DOCS/min+and+max+Query+Specifiers
Als u geen dubbele waarden in uw verzameling heeft, hoeft u min &max niet te gebruiken of een samengestelde index te maken. Je kunt gewoon $lt &$gt gebruiken.