संचायक वे ऑपरेटर होते हैं जो पाइपलाइन के माध्यम से दस्तावेजों की प्रगति के रूप में अपनी स्थिति बनाए रखते हैं।
$ROOT मूल दस्तावेज़ का संदर्भ देता है, यानी शीर्ष-स्तरीय दस्तावेज़, जिसे वर्तमान में एकत्रीकरण पाइपलाइन चरण में संसाधित किया जा रहा है।
आइए दस्तावेजों के साथ एक संग्रह बनाएं -
> db.demo582.insertOne({FirstName:"Chris",Age:21,createDate:new ISODate("2020-01-10")});{ "acknowledged" : true, "insertedId" : ObjectId("5e91ce41fd2d90c177b5bcbd") } > db.demo582.insertOne({FirstName:"Chris",Age:21,createDate:new ISODate("2020-04-21")});{ "acknowledged" : true, "insertedId" : ObjectId("5e91ce4ffd2d90c177b5bcbe") } > db.demo582.insertOne({FirstName:"Chris",Age:22,createDate:new ISODate("2020-02-11")});{ "acknowledged" : true, "insertedId" : ObjectId("5e91ce59fd2d90c177b5bcbf") } > db.demo582.insertOne({FirstName:"Chris",Age:22,createDate:new ISODate("2020-01-12")});{ "acknowledged" : true, "insertedId" : ObjectId("5e91ce6efd2d90c177b5bcc0") }
संग्रह से सभी दस्तावेज़ों को खोजने () विधि की सहायता से प्रदर्शित करें -
> db.demo582.find();
यह निम्नलिखित आउटपुट देगा -
{ "_id" : ObjectId("5e91ce41fd2d90c177b5bcbd"), "FirstName" : "Chris", "Age" : 21, "createDate" : ISODate("2020-01-10T00:00:00Z") } { "_id" : ObjectId("5e91ce4ffd2d90c177b5bcbe"), "FirstName" : "Chris", "Age" : 21, "createDate" : ISODate("2020-04-21T00:00:00Z") } { "_id" : ObjectId("5e91ce59fd2d90c177b5bcbf"), "FirstName" : "Chris", "Age" : 22, "createDate" : ISODate("2020-02-11T00:00:00Z") } { "_id" : ObjectId("5e91ce6efd2d90c177b5bcc0"), "FirstName" : "Chris", "Age" : 22, "createDate" : ISODate("2020-01-12T00:00:00Z") }
ग्रुप एक्यूमुलेटर ऑपरेटर को लागू करने के लिए क्वेरी निम्नलिखित है -
> db.demo582.aggregate([ ... { ... "$group": { ... "_id": "$FirstName", ... "MaximumDate": { ... "$max": "$createDate" ... }, ... "count": { ... "$sum": 1 ... }, ... "details": { ... "$first": "$$ROOT" ... } ... } ... }, ... { ... "$project": { ... "MaximumDate": 1, ... "count": 1, ... "details": { ... "_id": "$_id", ... "FirstName": "$details.FirstName", ... "Age" : "$details.Age", ... } ... } ... } ... ])
यह निम्नलिखित आउटपुट देगा -
{ "_id" : "Chris", "MaximumDate" : ISODate("2020-04-21T00:00:00Z"), "count" : 4, "details" : { "_id" : "Chris", "FirstName" : "Chris", "Age" : 21 } }