Mongoose Paginate JavaScript (Node.js) के लिए: पूरी गाइड उदाहरण सहित
PythonLib में आपका स्वागत है! आज हम Mongoose Paginate के बारे में विस्तार से जानेंगे - यह Node.js ऐप्लिकेशन में MongoDB के लिए Mongoose ODM (Object Data Modeling) के साथ पेजिनेशन लागू करने की सबसे लोकप्रिय लाइब्रेरी है।
1. यह क्या है और क्यों ज़रूरी है
Mongoose Paginate एक हल्का-फुल्का प्लगइन है जो Mongoose स्कीमा में paginate() मेथड जोड़ता है। इससे आप बड़े डेटा सेट को आसानी से पेजों में बांट सकते हैं, बिना सभी डॉक्यूमेंट एक साथ लोड किए।
यह क्यों ज़रूरी है? असली ऐप्लिकेशन (ब्लॉग, ई-कॉमर्स साइट, API) में डेटाबेस में हज़ारों या लाखों रिकॉर्ड होते हैं। सबको एक साथ लोड करने से:
- सर्वर पर भारी लोड (मेमोरी, प्रोसेसर)।
- धीमा API रिस्पॉन्स (यूज़र को मिनटों तक इंतज़ार करना पड़ता है)।
- खराब यूज़र अनुभव (बिना पेजिनेशन या "अगला" बटन के अंतहीन स्क्रॉलिंग)।
Mongoose Paginate इन समस्याओं को हल करता है। यह एक तैयार, टेस्टेड और लचीला पेजिनेशन सिस्टम देता है। यह ऑटोमैटिकली कुल डॉक्यूमेंट गिनता है, सही पेज लौटाता है, और मेटा-जानकारी (वर्तमान पेज, कुल पेज, अगला/पिछला पेज है या नहीं) भी देता है।
2. इंस्टॉलेशन
इंस्टॉलेशन npm (Node Package Manager) के ज़रिए होता है। सुनिश्चित करें कि आपके पास Node.js और npm पहले से इंस्टॉल है।
npm install mongoose-paginate-v2
ज़रूरी बात: इस लाइब्रेरी के दो वर्जन हैं:
mongoose-paginate— पुराना, कम मेंटेन किया गया वर्जन।mongoose-paginate-v2— नया, रेकमेंडेड वर्जन जिसमें ज़्यादा फीचर्स और फिक्स हैं।
इस आर्टिकल में हम mongoose-paginate-v2 का उपयोग करेंगे।
3. तुरंत शुरुआत — एक छोटा काम का उदाहरण
चलिए एक सरल "यूज़र" मॉडल बनाते हैं और उस पर पेजिनेशन लागू करते हैं।
// 1. डिपेंडेंसीज़ जोड़ें
const mongoose = require('mongoose');
const mongoosePaginate = require('mongoose-paginate-v2');
// 2. स्कीमा डिफाइन करें
const userSchema = new mongoose.Schema({
name: String,
email: String,
age: Number,
createdAt: { type: Date, default: Date.now }
});
// 3. स्कीमा में पेजिनेशन प्लगइन जोड़ें
userSchema.plugin(mongoosePaginate);
// 4. मॉडल बनाएं
const User = mongoose.model('User', userSchema);
// 5. MongoDB से कनेक्ट करें (लोकल DB का उदाहरण)
async function main() {
await mongoose.connect('mongodb://localhost:27017/testdb');
// 6. टेस्ट डेटा डालें (अगर नहीं है)
const count = await User.countDocuments();
if (count === 0) {
const users = [];
for (let i = 1; i <= 50; i++) {
users.push({ name: `User ${i}`, email: `user${i}@example.com`, age: 20 + (i % 30) });
}
await User.insertMany(users);
console.log('50 यूज़र डाले गए');
}
// 7. पेजिनेशन का उपयोग करें
const options = {
page: 1, // पेज नंबर (डिफ़ॉल्ट 1)
limit: 10, // हर पेज पर आइटम की संख्या (डिफ़ॉल्ट 10)
};
const result = await User.paginate({}, options);
console.log('पेजिनेशन का रिज़ल्ट:');
console.log('डॉक्यूमेंट:', result.docs);
console.log('कुल डॉक्यूमेंट:', result.totalDocs);
console.log('कुल पेज:', result.totalPages);
console.log('वर्तमान पेज:', result.page);
console.log('अगला पेज है:', result.hasNextPage);
console.log('पिछला पेज है:', result.hasPrevPage);
await mongoose.disconnect();
}
main().catch(console.error);
यह कोड 50 यूज़र बनाएगा, फिर पहला पेज 10 यूज़र के साथ दिखाएगा। कंसोल में आपको डॉक्यूमेंट के साथ-साथ मेटा-जानकारी भी दिखेगी।
पुस्तकालय में भी
C# (.NET) के लिए CLI फ्रेमवर्क: System.CommandLine और Spectre.Console
Rust में XML के साथ कार्य: quick-xml, roxmltree और serde_xml_rs लाइब्रेरीज़
TypeScript के लिए HTTP-क्लाइंट: आधुनिक वेब एप्लिकेशन के लिए शीर्ष लाइब्रेरी
C# (.NET) में कार्य शेड्यूलर: Quartz.NET, Hangfire, Coravel