MongoDB एग्रीगेशन में $match + $count: फ़िल्टर्ड गिनती
$match दस्तावेज़ों को फ़िल्टर करता है, $count परिणामों की संख्या गिनता है और एकल फ़ील्ड के साथ दस्तावेज़ लौटाता है। यह countDocuments() का एग्रीगेशन समकक्ष है।
नमूना डेटा
> db.demo358.insertOne({"ClientId": 101, "ClientName": "Chris", "ClientAge": 34});
{ "acknowledged": true, "insertedId": ObjectId("5e5692c0f8647eb59e5620cb") }
> db.demo358.insertOne({"ClientId": 102, "ClientName": "David", "ClientAge": 32});
{ "acknowledged": true, "insertedId": ObjectId("5e5692caf8647eb59e5620cc") }
> db.demo358.insertOne({"ClientId": 103, "ClientName": "David", "ClientAge": 35});
{ "acknowledged": true, "insertedId": ObjectId("5e5692d2f8647eb59e5620cd") }
> db.demo358.insertOne({"ClientId": 104, "ClientName": "Bob", "ClientAge": 31});
{ "acknowledged": true, "insertedId": ObjectId("5e5692ddf8647eb59e5620ce") }
> db.demo358.insertOne({"ClientId": 105, "ClientName": "Chris", "ClientAge": 36});
{ "acknowledged": true, "insertedId": ObjectId("5e5692e7f8647eb59e5620cf") }
एग्रीगेशन: "David" नाम वाले दस्तावेज़ गिनना
> db.demo358.aggregate([
{$match: {"ClientName": "David"}},
{$count: "ClientName"}
]);
परिणाम
{ "ClientName": 2 }
दो दस्तावेज़ों में ClientName "David" है। $count आउटपुट फ़ील्ड नाम निर्दिष्ट करता है (यहां "ClientName")। पाइपलाइन में $match पहले होना चाहिए ताकि इंडेक्स का उपयोग हो सके।