चूंकि मैं जिस संग्रह को पेजिंग कर रहा था, उसमें डुप्लिकेट मान थे, इसलिए मुझे ProductName और id पर एक कंपाउंड इंडेक्स बनाना था।
यौगिक अनुक्रमणिका बनाएं
db.ProductGuideItem.ensureIndex({ ProductName:1, _id:1});
इससे मेरी समस्या हल हो गई।
संदर्भ:https://groups.google.com/d/msg/mongodb-user/3EZZIRJzW_A/oYH79npKZHkJ
मान लें कि आपके पास ये मान हैं:
{a:1, b:1}
{a:2, b:1}
{a:2, b:2}
{a:2, b:3}
{a:3, b:1}
तो आप इसे श्रेणी आधारित पेजिनेशन (पेज 2 का आकार) के लिए करते हैं:
पहला पृष्ठ
find().sort({a:1, b:1}).limit(2)
{a:1, b:1}
{a:2, b:1}
दूसरा पृष्ठ
find().min({a:2, b:1}).sort({a:1, b:1}).skip(1).limit(2)
{a:2, b:2}
{a:2, b:3}
तीसरा पृष्ठ
find().min({a:2, b:3}).sort({a:1, b:1}).skip(1).limit(2)
{a:3, b:1}
यहां $min/max के लिए दस्तावेज़ हैं:http://www.mongodb.org/display/DOCS/min+and+max+Query+Specifiers
यदि आपके संग्रह में डुप्लिकेट मान नहीं हैं, तो आपको न्यूनतम और अधिकतम का उपयोग करने या एक मिश्रित अनुक्रमणिका बनाने की आवश्यकता नहीं है। आप बस $lt और $gt का उपयोग कर सकते हैं।