MongoDB में skip() और limit() के साथ पेजिनेशन
MongoDB में रिकॉर्ड्स छोड़ने के लिए skip() का उपयोग करें। विशिष्ट संख्या में रिकॉर्ड्स दिखाने के लिए limit() का उपयोग करें।
कलेक्शन बनाना (10 डॉक्यूमेंट्स)
> db.demo275.insertOne({"Number":10});
{ "acknowledged": true, "insertedId": ObjectId("5e48eac4dd099650a5401a43") }
> db.demo275.insertOne({"Number":12});
{ "acknowledged": true, "insertedId": ObjectId("5e48eac7dd099650a5401a44") }
> db.demo275.insertOne({"Number":6});
{ "acknowledged": true, "insertedId": ObjectId("5e48eac9dd099650a5401a45") }
> db.demo275.insertOne({"Number":1});
{ "acknowledged": true, "insertedId": ObjectId("5e48eacadd099650a5401a46") }
> db.demo275.insertOne({"Number":5});
{ "acknowledged": true, "insertedId": ObjectId("5e48eacddd099650a5401a47") }
> db.demo275.insertOne({"Number":24});
{ "acknowledged": true, "insertedId": ObjectId("5e48ead0dd099650a5401a48") }
> db.demo275.insertOne({"Number":8});
{ "acknowledged": true, "insertedId": ObjectId("5e48ead6dd099650a5401a49") }
> db.demo275.insertOne({"Number":9});
{ "acknowledged": true, "insertedId": ObjectId("5e48ead8dd099650a5401a4a") }
> db.demo275.insertOne({"Number":19});
{ "acknowledged": true, "insertedId": ObjectId("5e48eadddd099650a5401a4b") }
> db.demo275.insertOne({"Number":29});
{ "acknowledged": true, "insertedId": ObjectId("5e48eae1dd099650a5401a4c") }
सभी डॉक्यूमेंट्स (इन्सर्शन क्रम में)
> db.demo275.find();
पहले 5 छोड़कर अगले 5 प्राप्त करने की क्वेरी
> db.demo275.find().skip(5).limit(5)परिणाम
व्याख्या
- skip(5): पहले 5 डॉक्यूमेंट्स को छोड़ देता है
- limit(5): अगले 5 डॉक्यूमेंट्स तक सीमित करता है
- डिफ़ॉल्ट सॉर्ट इन्सर्शन क्रम (_id क्रम) है
- यह 6वें से 10वें डॉक्यूमेंट्स लौटाता है
पेजिनेशन पैटर्न
// पेज n (0-आधारित), पेज आकार pageSize
db.collection.find().skip(n * pageSize).limit(pageSize)
// सॉर्ट के साथ (स्थिर परिणामों के लिए आवश्यक)
db.collection.find().sort({_id: 1}).skip(n * pageSize).limit(pageSize)
प्रदर्शन नोट
बड़े skip मानों के लिए प्रदर्शन गिरता है। बड़े डेटासेट के लिए रेंज-आधारित पेजिनेशन (कर्सर-आधारित) का उपयोग करें।