$month ऑपरेटर के साथ एग्रीगेशन
ISODate फील्ड से केवल **महीना** (या वर्ष) निकालकर क्वेरी करने के लिए, एग्रीगेशन पाइपलाइन में $project चरण के अंदर $month (या $year) ऑपरेटर का उपयोग करें, फिर $match लागू करें।
उदाहरण: डेटा डालना
> db.specificMonthDemo.insertOne({"StudentName":"Larry","StudentDateOfBirth":new ISODate('1995-01-12')});
{ "acknowledged" : true, "insertedId" : ObjectId("5cb9a9ca8f1d1b97daf71819") }
> db.specificMonthDemo.insertOne({"StudentName":"Chris","StudentDateOfBirth":new ISODate('1999-12-31')});
{ "acknowledged" : true, "insertedId" : ObjectId("5cb9a9db8f1d1b97daf7181a") }
> db.specificMonthDemo.insertOne({"StudentName":"David","StudentDateOfBirth":new ISODate('2000-06-01')});
{ "acknowledged" : true, "insertedId" : ObjectId("5cb9a9ee8f1d1b97daf7181b") }
दस्तावेज़ देखना
> db.specificMonthDemo.find().pretty();
आउटपुट:
जनवरी (महीना 1) में जन्मे छात्र ढूंढना
> db.specificMonthDemo.aggregate([ ... {$project: {StudentName: 1, StudentDateOfBirth: {$month: '$StudentDateOfBirth'}}}, ... {$match: {StudentDateOfBirth: 1}} ... ]).pretty();आउटपुट:
व्याख्या:
$project:StudentDateOfBirthको पूर्ण तारीख के बजाय महीने की संख्या (1-12) में बदल देता है।$match: महीना 1 (जनवरी) वाले दस्तावेज़ फ़िल्टर करता है।इसी तरह वर्ष के लिए:
{$year: '$StudentDateOfBirth'}का उपयोग करें।