हालांकि यह करने योग्य है, कोड को कम पठनीय और अधिक जटिल बनाता है।
मैं $group
. को फिर से लिखूंगा year
. को शामिल करने का चरण weeks
. के साथ और $project
जोड़ें आवश्यकता के अनुसार डेटा को प्रारूपित करने के लिए चरण।
db.collection.aggregate([
{
"$group": {
"_id": {
"week": {
"$week": {"$subtract": ["$at", 25200000]} // <-- Changes timezone to -07:00
},
"year": {
"$year": {"$subtract": ["$at", 25200000]} // <-- Changes timezone to -07:00
},
},
// <-- Add keys to be added in group along with its logics
"averageValue": {
"$avg": "$readings.level_1"
}
},
},
{
"$project": {
"_id": {
"startDate": {
"$dateToString": {
"date": {
"$dateFromParts": {
"isoWeekYear": "$_id.year",
"isoWeek": "$_id.week"
}
},
"format": "%Y-%m-%d",
},
},
"endDate": {
"$dateToString": {
"date": {
"$add": [
{
"$dateFromParts": {
"isoWeekYear": "$_id.year",
"isoWeek": "$_id.week"
}
},
518400000,
],
},
"format": "%Y-%m-%d",
},
},
},
// <-- Add remaining keys to be projected
"averageValue": 1,
},
},
])
मुझे बताएं कि क्या आपको प्रत्येक चरण और उपयोग किए गए ऑपरेटर के स्पष्टीकरण की आवश्यकता है और मैंने इसका उपयोग क्यों किया।
मोंगो खेल का मैदान नमूना निष्पादन