तिथियों के अनुसार समूह बनाने के लिए, MongoDB एग्रीगेट में $group का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं:
> db.demo657.insertOne({
id: 1,
Name: "Chris",
DueDate: new ISODate("2020-04-22")
});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea064b44deddd72997713d6") }
> db.demo657.insertOne(
{
id: 1,
Name: "John",
DueDate: new ISODate("2020-04-22")
});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea064b44deddd72997713d7") }
> db.demo657.insertOne(
{
id: 1,
Name: "Chris",
DueDate: new ISODate("2020-04-22")
});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea064b44deddd72997713d8") }
find() मेथड की मदद से संग्रह के सभी दस्तावेज़ प्रदर्शित करें:
> db.demo657.find();
यह निम्न आउटपुट देगा:
{ "_id" : ObjectId("5ea064b44deddd72997713d6"), "id" : 1, "Name" : "Chris", "DueDate" : ISODate("2020-04-22T00:00:00Z") }
{ "_id" : ObjectId("5ea064b44deddd72997713d7"), "id" : 1, "Name" : "John", "DueDate" : ISODate("2020-04-22T00:00:00Z") }
{ "_id" : ObjectId("5ea064b44deddd72997713d8"), "id" : 1, "Name" : "Chris", "DueDate" : ISODate("2020-04-22T00:00:00Z") }
MongoDB संग्रह में तिथियों के अनुसार समूह बनाने की क्वेरी:
> db.demo657.aggregate([
{$match: {id:1, DueDate: {$gte:new ISODate('2020-04-21'), $lt:new ISODate ("2020-04-23")}}},
{$project:
{day: {'$dayOfMonth': '$DueDate'},month: {'$month':'$DueDate'},year: {'$year':'$DueDate'},Name:"$Name" }
},
{$group: {
_id: {day:'$day',month:'$month',year:'$year'},
ListOfNames: {$push:{Name:'$Name'}}
}}
])
यह निम्न आउटपुट देगा:
{ "_id" : { "day" : 22, "month" : 4, "year" : 2020 }, "ListOfNames" : [ { "Name" : "Chris" }, { "Name" : "John" }, { "Name" : "Chris" } ] }