MongoDB-এ limit() ব্যবহার করলে ক্যোয়েরির ফলাফল সীমিত হয়, কিন্তু মোট কতগুলো ডকুমেন্ট মেলেছে সেটা জানতে $facet অপারেটর (MongoDB 3.4+) ব্যবহার করা হয়।
উদাহরণ ডেটা:
> db.totalDocumentDemo.insertOne({"InstructorId": 100, "InstructorName": "Larry", "InstructorFavouriteSubject": ["Java", "MongoDB", "Python"]});
> db.totalDocumentDemo.insertOne({"InstructorId": 200, "InstructorName": "Sam", "InstructorFavouriteSubject": ["SQL Server", "C#", "Javascript"]});
$facet ব্যবহার করে একই কোয়েরিতে ডেটা ও মোট সংখ্যা পাওয়ার কোয়েরি:
> db.totalDocumentDemo.aggregate([
{
$facet: {
Alldata: [{$match: {}}],
totalDocument: [{$count: "totalDocument"}]
}
}
]).pretty();
ফলাফল:
{
"Alldata": [
{"_id": ObjectId("..."), "InstructorId": 100, "InstructorName": "Larry", "InstructorFavouriteSubject": ["Java", "MongoDB", "Python"]},
{"_id": ObjectId("..."), "InstructorId": 200, "InstructorName": "Sam", "InstructorFavouriteSubject": ["SQL Server", "C#", "Javascript"]}
],
"totalDocument": [{"totalDocument": 2}]
}
$facet একাধিক সাব-পাইপলাইন একসাথে চালাতে দেয়, ফলে একই অপারেশনে পেইনেটেড ডেটা ও টোটাল কাউন্ট পাওয়া যায়।