Karena koleksi yang saya paging memiliki nilai duplikat, saya harus membuat indeks gabungan pada ProductName dan id.
Buat Indeks Gabungan
db.ProductGuideItem.ensureIndex({ ProductName:1, _id:1});
Ini memecahkan masalah saya.
Referensi:https://groups.google.com/d/msg/mongodb-user/3EZZIRJzW_A/oYH79npKZHkJ
Dengan asumsi Anda memiliki nilai-nilai ini:
{a:1, b:1}
{a:2, b:1}
{a:2, b:2}
{a:2, b:3}
{a:3, b:1}
Jadi, lakukan ini untuk pagination berbasis rentang (ukuran halaman 2):
Halaman Pertama
find().sort({a:1, b:1}).limit(2)
{a:1, b:1}
{a:2, b:1}
Halaman ke-2
find().min({a:2, b:1}).sort({a:1, b:1}).skip(1).limit(2)
{a:2, b:2}
{a:2, b:3}
Halaman ke-3
find().min({a:2, b:3}).sort({a:1, b:1}).skip(1).limit(2)
{a:3, b:1}
Berikut adalah dokumen untuk $min/max:http://www.mongodb.org/display/DOCS/min+and+max+Query+Specifiers
Jika Anda tidak memiliki nilai duplikat dalam koleksi Anda, Anda tidak perlu menggunakan min &max atau membuat indeks gabungan. Anda cukup menggunakan $lt &$gt.