आप किस ढांचे का उपयोग कर रहे हैं? यह MongoDB शेल नहीं है और MapReduce के आसपास कुछ अजीब आवरण जैसा दिखता है। उस स्थिति में $अनविंड उपलब्ध नहीं होगा, और आपको एकत्रीकरण ढांचे में उपयोगकर्ता के लिए इसकी आवश्यकता है। यहाँ आप मोंगो शेल में क्या चाहते हैं:
db.articles.aggregate([
{$match: { class_date: { $gte: date } } },
{$project: { _id: 0, class_artist: 1 } },
{$unwind: "$class_artist" },
{$group: { _id: "$class_artist", tags: { $sum: 1 } }},
{$project: { _id: 0,class_artist: "$_id", tags: 1 } },
{$sort: { tags: -1 } }
])
इतनी कुशलता से:
- तारीख के अनुसार फ़िल्टर करें क्योंकि आपने पिछले 7 दिनों के लिए पहले से ही एक संस्करण सेट किया है
- केवल उस क्षेत्र को प्रोजेक्ट करें जिसकी हमें आवश्यकता है {हमें केवल एक की आवश्यकता है! }
- सरणी को खोलना ताकि अब हमारे पास प्रत्येक दस्तावेज़ में प्रत्येक सरणी तत्व के लिए एक रिकॉर्ड हो
- विस्तृत दस्तावेज़ों से कलाकार पर समूह
- एक दस्तावेज़ प्रारूप में प्रोजेक्ट करें जिसे आप _id के साथ गड़बड़ समूह के रूप में उपयोग कर सकते हैं
- शीर्ष टैग को पहले देखने के लिए परिणामों को उल्टे क्रम में क्रमबद्ध करें
और एकत्रीकरण के बारे में सबसे अच्छी बात यह है कि क्या हो रहा है यह देखने के लिए आप धीरे-धीरे उन चरणों का निर्माण कर सकते हैं।
आवश्यकतानुसार अपने ड्राइवर इम्प्लांटेशन या ODM फ्रेमवर्क में हिलाएं और बेक करें।