मान लें कि यह आपके एकत्रीकरण का वर्तमान आउटपुट है:
{
"_id" : null,
"datesWithPartitions" : [
{
"date" : ISODate("2019-04-12T18:30:00Z"),
"partition" : 0
},
{
"date" : ISODate("2019-04-12T20:00:00Z"),
"partition" : 1
},
{
"date" : ISODate("2019-04-12T20:10:00Z"),
"partition" : 1
},
{
"date" : ISODate("2019-04-12T21:00:00Z"),
"partition" : 2
},
{
"date" : ISODate("2019-04-12T21:15:00Z"),
"partition" : 2
},
{
"date" : ISODate("2019-04-12T21:45:00Z"),
"partition" : 3
},
{
"date" : ISODate("2019-04-12T23:00:00Z"),
"partition" : 4
}
]
}
डेटा को एक प्रारूप में प्राप्त करने के लिए आपको निम्नलिखित एकत्रीकरण चरणों को जोड़ना होगा:
db.col.aggregate([
{
$unwind: "$datesWithPartitions"
},
{
$group: {
_id: "$datesWithPartitions.partition",
numEvents: { $sum: 1 },
startDate: { $min: "$datesWithPartitions.date" },
endDate: { $max: "$datesWithPartitions.date" }
}
},
{
$project: {
_id: 0,
partition: "$_id",
startDate: 1,
endDate: 1,
numEvents: 1
}
}
])
$अनविंड प्रति दस्तावेज़ एकल दिनांक लौटाएगा और फिर आप $group लागू कर सकते हैं $min के साथ और $max विभाजन की सीमाएं और $sum प्राप्त करने के लिए विभाजन तत्वों की गणना करने के लिए