Da samlingen, jeg søgte, havde duplikerede værdier, var jeg nødt til at oprette et sammensat indeks på produktnavn og id.
Opret sammensat indeks
db.ProductGuideItem.ensureIndex({ ProductName:1, _id:1});
Dette løste mit problem.
Reference:https://groups.google.com/d/msg/mongodb-user/3EZZIRJzW_A/oYH79npKZHkJ
Forudsat at du har disse værdier:
{a:1, b:1}{a:2, b:1}{a:2, b:2}{a:2, b:3}{a:3, b:1 }
Så du gør dette for den områdebaserede paginering (sidestørrelse på 2):
1. side
find().sort({a:1, b:1}).limit(2){a:1, b:1}{a:2, b:1}
2. side
find().min({a:2, b:1}).sort({a:1, b:1}).skip(1).limit(2){a:2, b:2}{a:2, b:3}
3. side
find().min({a:2, b:3}).sort({a:1, b:1}).skip(1).limit(2){a:3, b:1}
Her er dokumenterne til $min/max:http://www.mongodb.org/display/DOCS/min+and+max+Query+Specifiers
Hvis du ikke har duplikerede værdier i din samling, behøver du ikke bruge min &max eller oprette et sammensat indeks. Du kan bare bruge $lt &$gt.