MongoDB में limit() का उपयोग करते हुए भी कुल डॉक्यूमेंट काउंट प्राप्त करने के लिए $facet ऑपरेटर का उपयोग करें। यह एक ही क्वेरी में पेजिनेटेड डेटा और कुल काउंट दोनों देता है।
उदाहरण से समझें
एक कलेक्शन बनाकर डॉक्यूमेंट इन्सर्ट करते हैं:
> db.totalDocumentDemo.insertOne({"InstructorId": 100, "InstructorName": "Larry", "InstructorFavouriteSubject": ["Java", "MongoDB", "Python"]});
> db.totalDocumentDemo.insertOne({"InstructorId": 200, "InstructorName": "Sam", "InstructorFavouriteSubject": ["SQL Server", "C#", "Javascript"]});
सभी डॉक्यूमेंट देखने के लिए:
> db.totalDocumentDemo.find().pretty();
आउटपुट:
{ "_id": ..., "InstructorId": 100, "InstructorName": "Larry", "InstructorFavouriteSubject": ["Java", "MongoDB", "Python"] }
{ "_id": ..., "InstructorId": 200, "InstructorName": "Sam", "InstructorFavouriteSubject": ["SQL Server", "C#", "Javascript"] }
अब $facet का उपयोग करके एक ही क्वेरी में डेटा और कुल काउंट:
> db.totalDocumentDemo.aggregate([
{$facet: {
Alldata: [{$match: {}}],
totalDocument: [{$count: 'totalDocument'}]
}}
]).pretty();
आउटपुट:
{ "Alldata": [{...}, {...}], "totalDocument": [{ "totalDocument": 2 }] }
$facet एक ही एग्रीगेशन में कई पाइपलाइन प्रोसेस करने की अनुमति देता है - यहां एक पाइपलाइन सभी डेटा लाती है और दूसरी काउंट करती है।