मैं समस्या देखता हूं। लोग इस स्टैकओवरफ्लो उत्तर को खोज रहे हैं और ढूंढ रहे हैं:
यह गलत है, क्योंकि यह कभी भी सरणी को "पुनर्निर्माण" नहीं करता है।
आप $group
के साथ ऐसा करते हैं
और $push
, और चूंकि आप समूह बना रहे हैं, आपको $firstए> कोड>
दस्तावेज़ में अन्य फ़ील्ड के लिए जो आप चाहते हैं:
db.TrafficStatistic.aggregate([
{ "$unwind": "$statistic" },
{ "$sort": { "_id": 1, "statistic.data.desktop.users": 1 } },
{ "$group": {
"_id": "$_id",
"monthStart" : { "$first": "$monthStart" },
"monthEnd" : { "$first": "$monthEnd" },
"date" : { "$first": "$date" },
"statistic": { "$push": "$statistic" }
}}
])
$sort
पर भी ध्यान दें
"_id"
. दोनों पर लागू होता है और दूसरे क्षेत्र को छाँटने के लिए। ऐसा इसलिए है कि सॉर्टिंग प्रति दस्तावेज़ पर लागू होती है और यह महत्वपूर्ण है जब दस्तावेज़ विवरण $group
में एक साथ वापस रखे जाते हैं ।
अब दस्तावेज़ वैसा ही दिखता है जैसा उसने किया था, लेकिन इस बार सरणी सदस्यों को क्रमबद्ध किया गया है।